这一章节我们来具体讨论一下配合@autowired一起使用的限定器@Qualifier。

1.domain(重点)

蛋糕类:

package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_11;

public class Cake {

	private String name = "";

	public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }

厨师类:

package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_11;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; public class Chief {
@Autowired
@Qualifier("cake")
private Cake cake = null; private String name = ""; public String getName() {
return name;
} public Cake makeOneCake() {
if (cake != null) {
System.out.println(getName() + " make " + cake.getName());
} else {
System.out.println(cake);
}
return cake;
} public void setName(String name) {
this.name = name;
} }

厨师类这里须要注意的是,因为配置文件可能出现多个满足cake的bean。因此我们在chief里面使用限定器@Qualifier,限定了cake属性的注入对象仅仅可以是beanid是cake的bean。

2.測试类:(不变)

package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_11;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"/com/raylee/my_new_spring/my_new_spring/ch02/topic_1_11/ApplicationContext-test.xml" })
public class ChiefTest { @Autowired
private ApplicationContext applicationContext; @Test
public void testChief() {
Chief jack = applicationContext.getBean(Chief.class);
jack.makeOneCake();
}
}

3.配置文件

<?

xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="blueberryCheeseCake"
class="com.raylee.my_new_spring.my_new_spring.ch02.topic_1_11.Cake"
p:name="blueberryCheeseCake" scope="prototype" />
<bean id="cake"
class="com.raylee.my_new_spring.my_new_spring.ch02.topic_1_11.Cake"
p:name="cake" scope="prototype" />
<bean id="jack"
class="com.raylee.my_new_spring.my_new_spring.ch02.topic_1_11.Chief"
p:name="jack" />
</beans>

配置文件须要注意的地方是:我们为了測试上面的样例。有益定义了两个Cake类型的bean

測试输出:

jack make cake

总结:这一章节我们主要讨论了@autowired里面的限定器@Qualifier。

文件夹:http://blog.csdn.net/raylee2007/article/details/50611627

我的github:https://github.com/raylee2015/my_new_spring

最新文章

  1. BZOJ‘s Usaco 奶牛题集锦
  2. linux显示器常见设置
  3. MySQL慢日志监控脚本实例剖析
  4. 贪心 Codeforces Round #301 (Div. 2) A. Combination Lock
  5. linux第7天 I/O的五种模型, select
  6. C# 把引用的dll嵌入到exe文件中
  7. web前端开发控件学习笔记之jqgrid+ztree+echarts
  8. 史上最全的ASP.NET MVC路由配置,以后RouteConfig再弄不懂神仙都难救你啦~
  9. ci 多个文件同时上传
  10. java下properties属性文件操作
  11. python保留两位小数
  12. java反思reflect 分析Object物
  13. css中滚动条样式的设置
  14. python实现博客自动刷点击脚本
  15. 实验一 windows基本网络命令
  16. markdown首行缩进
  17. 点击a标签不跳转的办法
  18. laravel orwhere的使用
  19. 【Python】unittest-5
  20. _tkinter.TclError: image &quot;pyimage1&quot; doesn&#39;t exist 解决办法

热门文章

  1. BZOJ3697: 采药人的路径(点分治)
  2. IOIOI卡片占卜(Atcoder-IOIOI カード占い)(最短路)
  3. Robot Framework 自动化测试
  4. 洛谷——P3819 松江1843路
  5. iOS中 学会如何对sqlite3 进行封装
  6. 十分钟上手-搭建vue开发环境(新手教程)
  7. C#调用第三方ocx控件 (winform /aspx)
  8. 【CodeForces】Gargari and Bishops
  9. android图片文件的路径地址与Uri的相互转换
  10. hbase单机安装和简单使用