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>