直接看程序
待注入的bean:
private UserDAO userDao;
public UserDAO getUserDao() {
return userDao;
}
@Autowired
public void setUserDao(@Qualifier("u") UserDAO userDao) {
this.userDao = userDao;
}
配置文件:
<context:annotation-config />
僅僅這樣做就可以將UserDAO注入到容器中,爲什麼呢?
--> <context:annotation-config />這句話就已經初始化了4個Bean:AutowiredAnnotationBeanPostProcessor , CommonAnnotationBeanPostProcessor ,PersistenceAnnotationBeanPostProcessor ,RequiredAnnotationBeanPostProcessor。這樣只要你寫了相關的註解(比如@Autowired),Spring就會自動調用一個setter幫你注入。而且默認的注入方式爲"byType"。但由於是默認使用"byType"的形式自動注入,如果配置文件中有兩個相同Type的bean呢?這時候就要用到另外一個Annotation:@Qualifier,修改後的java代碼爲
private UserDAO userDao;
public UserDAO getUserDao() {
return userDao;
}
@Autowired
public void setUserDao(@Qualifier("配置文件的某一個Bean的name") UserDAO userDao) {
this.userDao = userDao;
}
這樣就會自動注入Qualifier裏的bean。