@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")