使用 @Qualifier 注释和 @Autowired 注释通过指定哪一个真正的 bean 将会被装配来消除混乱
2024-10-19 03:31:29
1、当你创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的某一个进行装配,在这种情况下,你可以使用 @Qualifier 注释和 @Autowired 注释来精确配置。
2、示例
java
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;
}
}
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() );
}
}
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>
<context:annotation-config/>
<bean id="profile" class="com.tutorialspoint.Profile"></bean>
<bean id="student1" class="com.tutorialspoint.Student">
<property name="name" value="Zara" />
<property name="age" value="11"/>
</bean> <bean id="student2" class="com.tutorialspoint.Student">
<property name="name" value="Nuha" />
<property name="age" value="2"/>
</bean>
</beans>
打印输出
Inside Profile constructor.
Age : 11
Name : Zara
最新文章
- js base64加密,后台解密
- html5手机常见问题与工具分享
- 用jxl解析excel内容
- 动态修改ActionBar Menu的显示
- HibernateTemplate和HibernateDaoSupport
- 在ubuntu16.04中一键创建LAMP环境
- iOS开发经验总结
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇
- C++常见问题解答博客合集
- Y1S002 xshell脚本编写示意
- Gogs 部署安装(windows)
- k8s定义Deployment,和service
- VS2013平台安装Qt插件过程
- UIView的alpha属性和hidden属性
- [osgearth]oe学习的一些经验(别人的)
- VMware VSAN 入门与配置(一)
- Jquery重新学习之九[Ajax运用总结C]
- Android 卡顿优化 4 布局优化实际技巧
- struts2之ModelDriven的用法
- Sliverlight变换特性