Spring_IOC_Annotation_Autowire&Qualifier

直接看程序

待注入的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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章