1、自动化装配Bean
Spring从两个角度实现自动化装配:
(1)组件扫描:Spring会自动发现应用上下文中所创建的bean
(2)自动装配:Spring会自动满足bean之间的依赖
相关注解:
@Component:声明该类为组件类,让容器创建bean
@Configuration:用于定义配置类,可替换xml配置文件
@ComponentScan:启用组件扫描,查找带有@Configuration注解的类容器自动创建这些类的bean,默认扫描配置类所在的包以及子包,-basePackages可以声明要扫描的包
测试相关JUnit4
@RunWith:运行器,指定运行的环境
@RunWith(SpringJUnit4ClassRunner.class):运行于Spring容器中
@RunWith(JUnit4.class):用JUnit4运行
@ContextConfiguration:加载配置类或配置文件
@ContextConfiguration(classes=xxx.class)
@ContextConfiguration(locations={"classpath:/.xml"})
@Test:声明测试方法,必须是public、void且无参数
为组件扫描的bean命名
Spring容器应用上下文中的所有bean都有一个ID,默认是第一个字母小写的类名,可以手动设置ID
(1)@Component("ID"),推荐
(2)@Named("ID")
2、通过Java代码装配bean
在一些场景下无法使用自动化装配,比如使用第三方类库,这种情况需要采用显示配置:Java配置和xml配置
Java配置
创建配置类-声明bean、依赖注入
配置类中不推荐调用其他方法来注入,直接自动装配。另外Spring中的bean是单例的,调用方法不用普通调用,会被Spring截断,返回的都是同一个引用。
3、导入和混合配置
Spring支持混合配置来满足不同的配置需求
(1)在Java配置类中引用xml配置:创建一个更高层次的配置类,使用@import组合其他配置类,使用@ImportResource组合xml配置文件
(2)在xml配置中应用Java配置类:import元素和bean元素