1.简单介绍

Spring提供了三种装配机制:

  1.在XML中进行显式配置;

  2.在java中进行显式配置;

  3.隐式的bean发现机制和自动装配。

  其中,1和3项在项目中经常使用,而在java中进行显示配置方式很少使用。本文专门介绍第2种方式。

  如果在项目中,我们需要将第三方库装配到spring中,这时候就没法使用隐式装配方式(没法在第三方库中加@Component等注解),这时候,

就需要在两种显式配置中选方法配置。

  其中在java中进行显式配置方式是更好的方案,因为它更为强大、类型安全并且重构友好。并且当需要装配bean非常多的时候,放在xml配置文件

不方便管理,使用java配置只需把所有javaConfig放在一个包下,扫描这个包即可。

2.代码实现

  1.applicationContext-service.xml  扫描JavaConfig包

 <context:component-scan base-package="com.taozhiye.JavaConfig"></context:component-scan>

  

  2.CDPlayer.java

 package com.taozhiye.JavaConfigTemp;

 public interface CDPlayer {

     public void get();

 }

  3.SgtPeppers.java

 package com.taozhiye.JavaConfigTemp;

 public class SgtPeppers implements CDPlayer {
@Override
public void get() {
System.out.println("SgtPeppers");
} }

  4.WhiteAlbum.java

 package com.taozhiye.JavaConfigTemp;

 public class WhiteAlbum implements CDPlayer {

     @Override
public void get() {
System.out.println("WhiteAlbum");
} }

  5.JavaConfig.java  需要扫描本文件所在包

 package com.taozhiye.JavaConfig;

 import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import com.taozhiye.JavaConfigTemp.CDPlayer;
import com.taozhiye.JavaConfigTemp.SgtPeppers;
import com.taozhiye.JavaConfigTemp.WhiteAlbum; @Configuration
public class JavaConfig { @Bean(name = "CDPlayer")
public CDPlayer get(){
int choice = (int) Math.floor(Math.random()*2);
System.out.println("choice:"+choice);
if(choice == 0){
return new SgtPeppers();
}else{
return new WhiteAlbum();
}
}
}

  6.JavaConfigAction.java

 package com.taozhiye.controller;

 import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.taozhiye.JavaConfigTemp.CDPlayer; @Controller
public class JavaConfigAction { @Autowired(required = false)
public CDPlayer CDPlayer; @RequestMapping("getCDPlayer")
public @ResponseBody String getCDPlayer(){
System.out.println(CDPlayer);
if(CDPlayer!=null){
CDPlayer.get();
}
return "CDPlayer";
}
}

这样就完成了简单的java中进行显式配置。

Spring装配bean(在java中进行显式配置)的更多相关文章

  1. Spring装配Bean之Java代码装配bean

    尽管通过组件扫描和自动装配实现Spring的自动化配置很方便也推荐,但是有时候自动配置的方式实现不了,就需要明确显示的配置Spring.比如说,想要将第三方库中的组件装配到自己的应用中,这样的情况下, ...

  2. JAVA入门[13]-Spring装配Bean

    一.概要 Sping装配bean主要有三种装配机制: 在XML中进行显式配置. 在Java中进行显式配置. 隐式的bean发现机制和自动装配. 原则: 建议尽可能地使用自动配置的机制,显式配置越少越好 ...

  3. spring装配bean的三种方式及其混合装配

    在spring容器中装配bean有三种基本方式和混合装配方式: 隐式的bean自动发现机制和自动装配 在java中进行显式配置 在xml中配置 混合装配(在多个java文件中配置.在JavaConfi ...

  4. 二、Spring装配Bean

    内容 声明bean 构造器注入和Setter方法注入 装配Bean 控制bean的创建和销毁 关键词 装配(wiring) 组件扫描(component scanning) 自动装配(AutoWiri ...

  5. 【转】spring 装配Bean中构造参数的注入

    转载自:http://www.bianceng.cn/Programming/Java/201307/37027.htm spring 装配Bean中构造参数的注入 spring装配bean中还有一种 ...

  6. Spring装配bean

    Spring配置的可选方案 Spring提供了如下三种装配机制: (1)在XML中显式配置 (2)在Java中显式配置 (3)隐式的bean发现机制和自动装配 Spring有多种方式可以装配bean, ...

  7. Spring装配Bean的三种方式+导入和混合配置

    目录 Spring IoC与bean 基于XML的显式装配 xml配置的基本结构 bean实例的三种创建方式 依赖注入的两种方式 构造器注入方式 setter方法注入方式 利用命名空间简化xml 基于 ...

  8. Spring 装配Bean

    Spring 装配Bean 装配解释: 创建应用对象之间协作关系的的行为通常称为装配(wiring),这也是依赖注入的本质 依赖注入是Spring的基础要素 一 : 使用spring装配Bean基础介 ...

  9. Spring装配Bean之XML装配bean

    在Spring刚出现的时候,XML是描述配置的主要方式,在Spring的名义下,我们创建了无数行XML代码.在一定程度上,Spring成为了XML的同义词. 现在随着强大的自动化配置和Java代码的配 ...

随机推荐

  1. c++ 异常处理(2)

    前面一篇博文简单介绍了 c++ 异常处理的流程,但在一些细节上一带而过了,比如,_Unwind_RaiseException 是怎样重建函数现场的,Personality routine 是怎样清理栈 ...

  2. maya2014卸载/安装失败/如何彻底卸载清除干净maya2014注册表和文件的方法

    maya2014提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装maya2014失败提示maya2014安装未完成,某些产品无法安装,也有时候想重新安装maya ...

  3. 通过Function Score Query优化Elasticsearch搜索结果(综合排序)

    在使用 Elasticsearch 进行全文搜索时,搜索结果默认会以文档的相关度进行排序,如果想要改变默认的排序规则,也可以通过sort指定一个或多个排序字段. 但是使用sort排序过于绝对,它会直接 ...

  4. 微信小程序如何套用iconfont

    前言 如果你在开发微信时,没有图标的话,可以到http://www.iconfont.cn/ 官方下使用图标,那么我们去使用一些吧,到官方网址下点击使用~ 下载代码即可使用,看看下载的文件吧. 如图可 ...

  5. mysql explain语法详解--优化你的查询

    原文地址:http://blog.csdn.net/zhuxineli/article/details/14455029 explain显示了mysql如何使用索引来处理select语句以及连接表.可 ...

  6. Caffe 使用记录(五):math_functions 分析

    本文转载自 Caffe源码(一):math_functions 分析 math_function 定义了caffe 中用到的一些矩阵操作和数值计算的一些函数,这里以float类型为例做简单的分析 1. ...

  7. 【Object类、常用API】

    Object类 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类 ...

  8. 关于git的常用命令

    1.git add <name> 将工作区的内容添加到暂存区 2.git commit -m <备注> 将内容提交到暂存区 3.git status  查看状态 4.  git ...

  9. mysql 开发进阶篇系列 32 工具篇(mysqladmin工具)

    一.概述 mysqladmin是一个执行管理操作的客户端程序.用来检要服务的配置和当前的状态,创建并删除数据库等.功能与mysql客户端类似,主要区别在于它更侧重于一些管理方面的功能.1. 查找mys ...

  10. salesforce lightning零基础学习(十) Aura Js 浅谈三: $A、Action、Util篇

    前两篇分别介绍了Component类以及Event类,此篇将会说一下 $A , Action以及 Util.  一. Action Action类通常用于和apex后台交互,设置参数,调用后台以及对结 ...