使用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/