bean 装配

1.装配方式

(1)在xml进行显式装配

(2)在java中进行显式装配

(3)隐式的bean发现机制和自动装配

2.装配方式(3)实现

(1)创建bean

/**
* @component告诉spring要为这个类创建bean,同时可以为bean设置别名,默认为类名首字母小写
*/
@Component("sgtPeppers")
public class SgtPeppers implements CompactDisc {
public void play() {

}
}

(2)启用组件扫描

/**
 * @componentScan设置spring扫描组件的包路径,默认为与配置文件即本类相同包及其子类,可以通过包路径设置也可以通过类或接口设置
 */
@Configuration
@ComponentScan(basePackages = "cn.edu.service.impl")
public class CdPlayConfig {
}

注:使用xml配置文件也可以启用组件扫描

(3)自动装配

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = CdPlayConfig.class)
public class PlayTest {
    //实现自动装配
    @Autowired
    private CompactDisc com;

    @Test
    public void test(){
        assertNotNull(com);
    }
}

3.装配方式(2)实现

/**
 * @Configuration表明该类是一个配置类。
 */
@Configuration
public class CdPlayConfig {
    //告诉bean返回一个对象,并且该对象注册到spring应用上下文的bean
    @Bean(name="compactDist")
    public CompactDisc getDisc(){
        return new SgtPeppers();
    }
    public CDPlayer getplayer(){
        //注入bean
        return new CDPlayer(getDisc());
    }
}

(3)装配方式(1)实现

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<beans>
<bean id = "compactDisc" class="cn.edu.pojo.CDPlayer">
<!--通过配置配件给构造器注入值,还可以给属性中的值注入值-->
<constructor-arg ref=""/>
</bean>
</beans>

</beans>
原文地址:https://www.cnblogs.com/yxqing/p/10749053.html