在Spring中的@qualifier注释

时间:2020-02-23 14:35:42  来源:igfitidea点击:

在本教程中,我们将在Spring中看到@Qualifier注释。

我们可以在XML配置中拥有多个相同类型的Bean,但我们只想仅通过其中一个,因此@Qualifier通过声明An-Anvoice of to to to to to to to the @autowired创建的混淆。

在spring中@Qualifier注解示例:

1.Country.java.

这是简单的Pojo类,其中有一些属性,所以国家有资本类的名称和对象。

在package org.igi.javapostssforlarearning中创建country.java .Copy内容到Country.java之后。

package org.igi.javapostsforlearning;
import org.springframework.beans.factory.annotation.Autowired;
public class Country {
 
	String countryName;
	@Autowired
	@Qualifier("capitalA") 
    Capital capital;
	
	public String getCountryName() {
		return countryName;
	}
	public void setCountryName(String countryName) {
		this.countryName = countryName;
	}
	public Capital getCapital() {
		return capital;
	}
}

2.Capital.java.

这也是一个名为"bueinkname"的一个属性的简单pojo类。

在package org.igi.javapostsforlearning时创建Capital.java .java.above country类包含此类的对象。
内容进入capical.java之后

package org.igi.javapostsforlearning;
 
public class Capital {
 
	String capitalName;
 
	public String getCapitalName() {
		return capitalName;
	}
 
	public void setCapitalName(String capitalName) {
		this.capitalName = capitalName;
	}
}

3.ApplicationContext.xml.

<?xml version="1.0" encoding="UTF-8"?>
<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-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 <context:annotation-config
 <bean id="CountryBean" class="org.igi.javapostsforlearning.Country">
  <property name="countryName" value="Netherlands" 
 </bean>
 <bean id="capitalA" class="org.igi.javapostsforlearning.Capital">
  <property name="capitalName" value="Delhi" 
 </bean>
 <bean id="capitalB" class="org.igi.javapostsforlearning.Capital">
  <property name="capitalName" value="Mumbai" 
 </bean>
</beans>

正如我们所能注意到,我们有两个相同类型的 Bean类。
在country.java我们使用@qualifier("大写字母")它意味着我们希望在XML配置文件中使用Bean ID ="首页"的国家的AutoRire资本属性。

4.QualifierAnnotationInspringMain.java </span <

此类包含main function.CreateQualileAnnotationInsPringMain.java在package org.igi.javapostsfor learearning .copy以下内容到prositileannotationinspringmain.java之后

package org.igi.javapostsforlearning;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class QualifierAnnotationInSpringMain{
 
	public static void main(String[] args) {
		ApplicationContext appContext = new ClassPathXmlApplicationContext("ApplicationContext.xml");
 
		Country countryObj = (Country) appContext.getBean("CountryBean");
		String countryName=countryObj.getCountryName();
		Capital capital=countryObj.getCapital();
		String capitalName=capital.getCapitalName();
		System.out.println(capitalName+" is capital of "+countryName);
 
	}
}

5.运行

当我们将运行上面的应用程序时,我们将按照输出作为输出。

Delhi is capital of Netherlands