通過@Resource注解實現(xiàn)屬性裝配代碼詳解
本文主要探究的問題時使用@Resource注解實現(xiàn)屬性裝配,當中涉及依賴注入—手工裝配,@Autowired和@Resource注解的區(qū)別等相關內容,具體如下。
使用Field注入(用于注解方式):注入依賴對象可以采用手工裝配或者手工自動裝配。在實際應用中建議使用手工裝配,因為自動裝配會產生未知情況,開發(fā)人員無法預見最終的裝配結果。
依賴注入—手工裝配
手工裝配依賴對象,在這種方式中又有兩種編程方式。
1.在xml配置文件中,通過bean節(jié)點配置,如:
<bean id="orderService" class="cn.itcast.service.OrderServiceBean"> //構造器注入 <constructor-arg index="0" type="java.lang.String" value="xxx"/> //屬setter方法注入 <property name="name" value="zhao"/> </bean>
2.在java代碼中使用@Autowired或者@Resource注解方式進行裝配。但我們需要在xml配置文件中配置一下信息
<beans Xmlns="http://www.springframework.org/schema/beans"
Xmlns="http://www.w3.org/2001/XMLSchema-instance"
Xmlns:context="http://www.springframework.org/schema/context"
Xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5xsd">
</beans>
這個配置隱式注冊了多個對注釋進行解析處理的處理器:
AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor
PersistenceAnnotationBeanProcessor,RequiredAnnotationBeanPostProcessor
3.區(qū)別
在java代碼中使用@Autowired或@Resource注解方式進行裝配。這兩個注解的區(qū)別是@Autowired默認按類型裝配@Resource默認按名稱進行裝配,當找不到與名稱匹配的bean才會按類型裝配
@Autowired
private PersonDao personDao;//用于字段上
@Autowired
public void setOrderDao(OrderDao orderDao){
this.orderDao = orderDao; //用于屬性的setter方法上
}
@Autowired注解是按類型裝配依賴對象,默認情況下它要求依賴對象必須存在,如果允許null值,可以設置它required屬性為false;如果我們想使用名稱裝配,可以結合@Qualfier注解一起使用,如下:
@Autowired@Qualifier("personDao")
private PersonDao personDao;
@Resource注解和@Autowired一樣,可以標注在字段或者屬性的setter方法上,但它默認按名稱裝配。名稱可以通過@Resource的name屬性指定;如果沒有指定name屬性,當注解標注在字段上,即默認字段的名稱作為bean名稱尋找依賴對象;當注解標注在屬性setter方法上,即默認取屬性名作為bean名稱尋找依賴對象
@Resource(name="personDaoBean") private PersonDao personDao;
注:如果沒有指定name屬性,并且按照默認的名稱仍找不到對象時,@Resource注解會回退到按類型裝配。但一旦指定了name屬性,就只能按名稱裝配了。
總結
以上就是本文關于通過@Resource注解實現(xiàn)屬性裝配代碼詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
《Spring的實例工廠方法和靜態(tài)工廠方法實例代碼》
《Spring用代碼來讀取properties文件實例解析》
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關文章
java Nio使用NioSocket客戶端與服務端交互實現(xiàn)方式
這篇文章主要介紹了java Nio使用 NioSocket 客戶端與服務端交互實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
SpringCache緩存抽象之CacheManager與自定義鍵生成方式
本文將深入探討Spring Cache的核心組件CacheManager及自定義鍵生成策略,幫助開發(fā)者掌握緩存配置與優(yōu)化技巧,從而構建高效可靠的緩存系統(tǒng),希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04

