@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。
当Spring容器启动时,AutowiredAnnotationBeanPostProcessor将扫描Spring容器中所有Bean,当发现Bean中拥有@Autowired注释时,就找到和其匹配(默认按类型匹配)的Bean,并注入到对应的地方中去。
@Autowired对方法或构造函数进行标注时,如对方法:
- public class Boss {
- private Car car;
- private Office office;
- @Autowired
- public void setCar(Car car) {
- this.car = car;
- }
- @Autowired
- public void setOffice(Office office) {
- this.office = office;
- }
- }
- public class Boss {
- private Car car;
- private Office office;
- @Autowired
- public Boss(Car car ,Office office){
- this.car = car;
- this.office = office ;
- }
- }
@Autowired默认按类型装配,它有一个required属性,默认为true,意思是这个字段或属性必须被装配,否则会报字段或属性装配异常,如果required设为false则可以将此字段或属性设置为null
@Qualifier("personDao") 这个注解和@Autowired一起使用表示按名称进行查找
@Autowired(required=true) @Qualifier("personDao")