Spring注解之@Autowired自動裝配bean 綜述


  @Autowired的工作原理是什么?在啟動spring IoC時,容器自動裝載了一個AutowiredAnnotationBeanPostProcessor后置處理器,當容器掃描到@Autowired、@Resource或@Inject時,就會在IoC容器自動查找需要的bean,並裝配給該對象的屬性。

  @Autowired:屬於Spring 的org.springframework.beans.factory.annotation包下,可用於為類的屬性、構造器、方法進行注值。

  @Resource:不屬於Spring的注解,而是來自於JSR-250位於java.annotation包下,使用該annotation為目標bean指定協作者bean。

  @Autowired注解自動裝配具有兼容類型的單個bean屬性,如指定的xxxService等。

  -構造器,普通字段(即使是非public),一切只有參數的方法都可以應用@Autowired。

  -默認情況下,當IOC容器里存在多個類型兼容的bean時,通過類型的自動裝配將無法工作。此時可以在@Qualifiter注解里提供bean的名稱,Spring允許對方法的入參標注 @Qualifiter以指定注入bean的名稱。

  -@Autowired注解也可以應用在數組類型的屬性上,此時Spring將會把所有匹配的bean進行自動匹配。

  -@Autowired注解也可以應用在集合屬性上,此時Spring讀取該集合的類型信息,然后自動裝配所有與之兼容的bean。

  -@Autowired注解用在java.util.Map上時,Map的key必須是String類型,那么Spring將自動裝配與之Map值類型兼容的bean,此時bean的名稱作為鍵值。

  相關@Autowired注解的更詳細介紹,請移步如下文章:

  1. Spring注解之@Autowired組件裝配
  2. Spring注解之@Autowired:裝配構造函數和屬性
  3. Spring注解之@Autowired:Setter 方法上使用@Autowired注解
  4. Spring注解之@Autowired:注入Arrays, Collections, and Maps

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM