在Spring框架xml配置中共有5種自動裝配 / 使用@Autowired註解自動裝配的過程是怎樣的?/ 自動裝配的侷限性

在Spring框架xml配置中共有5種自動裝配

  1. no:默認的方式是不進行自動裝配的,通過手工設置ref屬性來進行裝配bean。
  2. byName:通過bean的名稱進行自動裝配,如果一個bean的 property 與另一bean 的name 相同,就進行自動裝配。
  3. byType:通過參數的數據類型進行自動裝配。
  4. constructor:利用構造函數進行裝配,並且構造函數的參數通過byType進行裝配。
  5. autodetect:自動探測,如果有構造方法,通過 construct的方式自動裝配,否則使用 byType的方式自動裝配。

使用@Autowired註解自動裝配的過程是怎樣的?

使用@Autowired註解來自動裝配指定的bean。在使用@Autowired註解之需要在Spring配置文件進行配置<context:annotation-config />。

在啓動spring IoC時,容器自動裝載了一個AutowiredAnnotationBeanPostProcessor後置處理器,當容器掃描到@Autowied@Resource@Inject時,就會在IoC容器自動查找需要的bean,並裝配給該對象的屬性。在使用@Autowired時,首先在容器中查詢對應類型的bean:

如果查詢結果剛好爲一個,就將該bean裝配給@Autowired指定的數據;
如果查詢的結果不止一個,那麼@Autowired會根據名稱來查找;
如果上述查找的結果爲空,那麼會拋出異常。解決方法時,使用required=false。

自動裝配有哪些侷限性?

自動裝配的侷限性是:

重寫:你仍需用 和 配置來定義依賴,意味着總要重寫自動裝配。

基本數據類型:你不能自動裝配簡單的屬性,如基本數據類型,String字符串,和類。

模糊特性:自動裝配不如顯式裝配精確,如果有可能,建議使用顯式裝配。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章