Spring 基于注解(annotation)的配置之@Qualifier注解
2023-09-14 09:03:08 时间
使用@Qualifier可以分别为同样类型的Bean分别注入不同的依赖值。看个例子:
Student.java:
package com.sap;
public class Student {
private Integer age;
private String name;
public void setAge(Integer age) {
this.age = age;
}
public Integer getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Profile:
package com.sap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
public class Profile {
@Autowired
@Qualifier("student1")
private Student student;
public Profile(){
System.out.println("Inside Profile constructor." );
}
public void printAge() {
System.out.println("Age : " + student.getAge() );
}
public void printName() {
System.out.println("Name : " + student.getName() );
}
}
Main.app:
package com.sap;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
Profile profile = (Profile) context.getBean("profile");
profile.printAge();
profile.printName();
}
}
Beans.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/>
<!-- Definition for profile bean -->
<bean id="profile" class="com.sap.Profile">
</bean>
<!-- Definition for student1 bean -->
<bean id="student1" class="com.sap.Student">
<property name="name" value="Zara" />
<property name="age" value="11"/>
</bean>
<!-- Definition for student2 bean -->
<bean id="student2" class="com.sap.Student">
<property name="name" value="Nuha" />
<property name="age" value="2"/>
</bean>
</beans>
输出:
如果把profile类里的id改成student2:
输出:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关文章
- Spring Batch JpaPagingItemReader
- Spring-AOP
- Spring Boot介绍和环境配置
- eclipse打包spring boot项目成jar包的问题
- Spring Cloud 整合 nacos 实现动态配置中心
- Spring Cloud(九):分布式配置中心和消息总线详解编程语言
- MyBatis Spring SqlSessionFactoryBean 配置详解编程语言
- 解决spring-test中Feign问题: No qualifying bean of type ‘org.springframework.cloud.openfeign.FeignContext’ available详解编程语言
- 基于注解的Spring AOP的配置和使用详解编程语言
- Spring getBeansOfType方法:获取指定类型的JavaBean
- Spring框架下整合Redis的实现(spring整合redis)
- 基于Spring框架的Shiro配置方法