自动装配:
spring利用依赖注入和DI完成对IOC容器中各个组件的依赖关系赋值。自动装配的优点有:
- 自动装配可以大大地减少属性和构造器参数的指派。
- 自动装配也可以在解析对象时更新配置。
自动装配的方式有很多,其中包含spring的注解以及java自带的注解下面来看一看这些自动装配方式的区别
1.@Autowired(Spring规范)
@Autowired 在Spring2.5引入,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。
无需再通过传统的在bean的xml文件中进行bean的注入配置。而是使用注解,系统自动为你注入,即隐式配置。@Autowired是根据类型进行标注的,如需要按照名称进行装配,则需要配合@Qualifier使用
1).默认优先按照类型去容器中找对应的组件annotationConfigApplicationContext.getBean(BookDao.class),找到就赋值
2).若有多个相同类型的组件,再将属性名称作为组件的id去容器中查找
3).使用@Qualifier("bookDao")来指定需要装配的组件id而不是根据属性
4).自动装配,默认一定要属性赋值好,否则会报错,使用@Autowired(required=false)可以避免报错
5).@Primary("bookDao2")让Spring进行自动装配时,在没有明确用@Qualifier指定的情况下默认使用首选的bean