用@Resource註解完成屬性裝配

來源:互聯網
上載者:User

使用Field注入(用於註解方式)

注入依賴對象可以採用手工裝配或自動裝配,在實際應用中建議使用手工裝配。

還可以使用@Autowired或@Resource我們需要在xml設定檔中配置以下資訊:

<beans xmlns=http://www.springframework.org/schema/beans

xmlns:xsi=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/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-2.5.xsd”>

<context:annotation-config/>

</beans>

這個配置隱式註冊了多個對注釋進行解析處理的處理器:AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor

註:@Resource註解在Spring安裝目錄的lib\j2ee\common-annotations.jar

 

@Autowired和@Resource註解方式進行裝配,區別是:

@Autowired預設按類型裝配,@Resource預設按名稱裝配,當找不到與名稱匹配的bean才會按類型裝配。

 

@Autowired

private PersonDao personDao用於欄位上

@Autowired

public void setOrderDao(OrderDao orderDao) {用於屬性的setter方法上

       this.orderDao = orderDao;

}

@Autowired朱解釋按類型裝配依賴對象,預設情況下它要求依賴對象必須存在,如果允許null值,可以設定它的required屬性為false,如果我們向使用按名稱裝配,可以結合@Qualifier註解一起使用。如下:

@Autowired @Qualifier(“personDaoBean”)

private PersonDao personDao;

 

@Resource 註解(建議使用,是j2ee包中的類)和@Autowired(是spring中的類)一樣,也可以標註在欄位或屬性的setter方法上,但它預設按名稱裝配。名稱可以通過@Resource的name屬性指定,如果沒有指定name屬性,擋住解標註在欄位上,即預設取欄位的名稱作為bean名稱尋找依賴對象,擋住解標註在屬性的setter方法上,即預設取屬性名稱作為bean名稱尋找依賴對象。

@Resource(name=”personDaoBean”)

private PersonDao personDao//用於欄位上

 

注意如果沒有指定name屬性,並且按照預設的名稱仍然找不到依賴對象時,@Resource註解會回退到按類型裝配,但一旦指定了name屬性,就只能按名稱裝配了。

http://blog.163.com/ky_199/blog/static/14317602009225520045/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.