Spring实战第四版笔记-(2)装配Bean
一、Spring配置的可选方案
创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入(DI)的本质。Spring装配容器最常见有三种方法:
1、在XML中进行显式配置;
2、在Java中进行显式配置(JavaConfig);
3、隐式的bean发现机制和自动装配(基于注解)。
Spring的配置风格是可以互相搭配的,所以你可以选择使用XML装配一些bean,使用Spring基于Java的配置(JavaConfig)来装配另一些bean,而将剩余的bean让Spring去自动发现。即便如此,我的建议是尽可能地使用自动配置的机制。显示配置越少越好。当必须要显示配置bean的时候(比如有些源码不是由你来维护的,而当你需要为这些代码配置bean的时候),我推荐使用类型安全并且比XML更加强大的JavaConfig。最后,只有当你想要使用便利的XML命名空间,并且在JavaConfig中没有同样的实现时,才应该使用XML。Spring框架的核心是Spring容器。
二、自动化装配Bean(隐式的bean发现机制和自动装配)
Sprign从两个角度来实现自动化装配:
1、组件扫描(component scanning):Spring会自动发现应用上下文中创建的bean。
2、自动装配(autowiring):Spring自动满足bean之间的依赖。
组件扫描和自动装配组合在一起就能发挥出强大的威力,它们能够将你的显示配置降低到最少(组件扫描需要去显示的开启)。
三、一些注解:
@Configuration 配置注解,告诉Spring这个类为配置类。
@Component("Id") 组件注解,这个注解会告知Spring去为该类创建bean,Id除非特殊声明否则将使用默认的。
@ComponentScan 组件扫描注解,通常配置在配置类中,声明对某个类(@ComponentScan(basePackageClasses={Class1.class,Class2.class}))或某个包(@ComponentScan(basePackages={"package1","package2"}))中的组件进行扫描生成bean加入到容器中。
@Autowired 自动装载,根据引用类型进行装载。该注解不仅能用在构造方法上还能用在Setter方法上,如:

@ImportResource 在JavaConfig导入XML的配置,如:@ImportResource("classpath:cd-config.xml")
@Import JavaConfig导入其他的JavaConfig,可以一次性导入多个,如:@Import({CDPlayerConfig.class,CDConfig.class})
XML可以使用<import resource = "cd-config.xml" /> 导入其他的XML配置,导入JavaConfig的配置需要使用<bean class = "soundpackage.CDConfig" />,目前没有其他熟知的元素能够用来将Java配置导入到XML配置中。
四、Bean的生命周期



浙公网安备 33010602011771号