首页 > 代码库 > Spring装配bean--02通过Java代码装配bean

Spring装配bean--02通过Java代码装配bean

Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系

Spring提供了三种主要的装配机制:

  •     在XML中进行显式配置
  •     在Java中进行显式配置
  •     隐式的bean发现机制和自动装配

 

2在Java中显式配置

尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化装配是更为推荐的方式,但是当你要将第三方库中的组件装配到你的应用中,这时就必须显式的配置bean

显式配置包括:Java和XML,我更推荐使用Java类配置,就像上文中的JavaConfig那样

JavaConfig与其它的Java代码又有所区别,JavaConfig仅仅是配置代码,这意味着它不包含任何业务逻辑,通常将JavaConfig放到单独的包中,使其与程序逻辑分离开来

 

声明简单的bean

在JavaConfig 中声明bean,我们需要编写一个方法,这个方法会返回所需类型的一个实例(对象),然后给这个方法添加@Bean注解

1 CD类
@Component("cd1")//括号内给该bean设置ID,若不设置则默认为类名首字母小写即cD
public class CD 
{
    private String title = "最炫民族风";
    private String artist = "凤凰传奇";
    
    public void play()
    {
    	System.out.println("当前播放: " + title + " 演唱者: " + artist);
    }
}

2 CDplayer 播放器
@Component("cdPlayer")
public class CDplayer 
{
	
    private CD cd;
    
    @Autowired
    public CDplayer(CD cd)
    {
    	this.cd = cd;
    }
    public void play()
    {
    	cd.play();
    }
}

3 JavaConfig配置类
@Component
public class JavaConfig 
{
    @Bean//在不声明bean ID的情况下  默认 方法名 为 bean的ID getCD
    public CD getCD()
    {
    	return new CD();
    }
    
    @Bean//bean ID为getCDplayer
    public CDplayer getCDplayer(CD cd)   //以参数的形式注入所需要的 CD类实例
    {
    	return new CDplayer(cd);
    }
}

4 测试类
public class TestCase 
{
    @Test
    public void test01()
    {
    	AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
    	CDplayer cp = (CDplayer) context.getBean("getCDplayer");
    	cp.play();
    }
}

 

5  console控制台结果

当前播放: 最炫民族风 演唱者: 凤凰传奇

Spring装配bean--02通过Java代码装配bean