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>
05-19 08:08