Spring 学习笔记——第一天

时间:2021-12-28 19:36:12

       @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。

       当Spring容器启动时,AutowiredAnnotationBeanPostProcessor将扫描Spring容器中所有Bean,当发现Bean中拥有@Autowired注释时,就找到和其匹配(默认按类型匹配)的Bean,并注入到对应的地方中去。

       @Autowired对方法或构造函数进行标注时,如对方法:

  1. public class Boss {     
  2.     private Car car;     
  3.     private Office office;     
  4.     
  5.      @Autowired    
  6.     public void setCar(Car car) {     
  7.         this.car = car;     
  8.     }     
  9.       
  10.     @Autowired    
  11.     public void setOffice(Office office) {     
  12.         this.office = office;     
  13.     }     
  14. }  
   @Autowired将查找被标注的方法的入参类型的Bean,并调用方法自动注入这些Bean。        对构造函数进行标注也是如此: 
  1. public class Boss {     
  2.     private Car car;     
  3.     private Office office;     
  4.       
  5.     @Autowired    
  6.     public Boss(Car car ,Office office){     
  7.         this.car = car;     
  8.         this.office = office ;     
  9.     }     
  10. }  
   

       @Autowired默认按类型装配,它有一个required属性,默认为true,意思是这个字段或属性必须被装配,否则会报字段或属性装配异常,如果required设为false则可以将此字段或属性设置为null

       @Qualifier("personDao") 这个注解和@Autowired一起使用表示按名称进行查找

       @Autowired(required=true) @Qualifier("personDao")