javascript
Spring的自动装配
在spring中,使用autowire來配置自動裝載模式,對象無需自己查找或創建與其關聯的其他對象,由容器負責把需要相互協作的對象引用賦予各個對象。
(1)在Spring框架xml配置中共有5種自動裝配:
no:默認的方式是不進行自動裝配的,通過手工設置ref屬性來進行裝配bean。
byName:通過bean的名稱進行自動裝配,如果一個bean的 property 與另一bean 的name 相同,就進行自動裝配。?
byType:通過參數的數據類型進行自動裝配。
constructor:利用構造函數進行裝配,并且構造函數的參數通過byType進行裝配。
autodetect:自動探測,如果有構造方法,通過 construct的方式自動裝配,否則使用 byType的方式自動裝配。
(2)基于注解的自動裝配方式:
使用@Autowired、@Resource注解來自動裝配指定的bean。在使用@Autowired注解之前需要在Spring配置文件進行配置,<context:annotation-config />。在啟動spring IoC時,容器自動裝載了一個AutowiredAnnotationBeanPostProcessor后置處理器,當容器掃描到@Autowied、@Resource或@Inject時,就會在IoC容器自動查找需要的bean,并裝配給該對象的屬性。在使用@Autowired時,首先在容器中查詢對應類型的bean:
如果查詢結果剛好為一個,就將該bean裝配給@Autowired指定的數據;
如果查詢的結果不止一個,那么@Autowired會根據名稱來查找;
如果上述查找的結果為空,那么會拋出異常。解決方法時,使用required=false。
?
@Autowired可用于:構造函數、成員變量、Setter方法
注:@Autowired和@Resource之間的區別:
(1) @Autowired默認是按照類型裝配注入的,默認情況下它要求依賴對象必須存在(可以設置它required屬性為false)。
(2) @Resource默認是按照名稱來裝配注入的,只有當找不到與名稱匹配的bean才會按照類型來裝配注入。
總結
以上是生活随笔為你收集整理的Spring的自动装配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring中bean的作用域
- 下一篇: Spring事务的实现方式和实现原理