@Qualifier用处
1. @Qualifier作用为限定描述符,用于细粒度选择候选者,说人话就是注入的时候可能发现有多个可注入对象,比如说一个Service接口有3个实现类,分别为impl1,impl2,impl3,你注入service的时候注入的是接口,那么就可以通过@Qualifier(“你要注入的bean的名称”)来选择注入对象。
2. 实例:
Service接口
public interface IMenuService {
/**
* 获取所有菜单列表
*
* @return List<MenuEntity>
*/
public List<MenuEntity> getAllMenuList();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
实现类1:
@Service("menuService1")
public class MenuServiceImpl implements IMenuService {
@Autowired
private MenuMapper mapper;
/**
* 获取所有菜单
*/
@Override
public List<MenuEntity> getAllMenuList() {
MenuEntityExample example = new MenuEntityExample();
long start = System.currentTimeMillis();
example.setDistinct(false);
List<MenuEntity> allMneuList = mapper.selectByExample(example);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
实现类2:
@Service("menuService2")
public class MenuServiceImpl implements IMenuService {
/**
* 获取所有菜单
*/
@Override
public List<MenuEntity> getAllMenuList() {
return null;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
注入menuService1:
@Autowired
@Qualifier("menuService1")
private IMenuService menuService;
- 1
- 2
- 3
注入menuService2:
@Autowired
@Qualifier("menuService2")
private IMenuService menuService;
- 1
- 2
- 3
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
<div class="more-toolbox">
<div class="left-toolbox">
<ul class="toolbox-list">
<li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#csdnc-thumbsup"></use>
</svg><span class="name">点赞</span>
<span class="count">1</span>
</a></li>
<li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{"mod":"popu_824"}"><svg class="icon" aria-hidden="true">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-csdnc-Collection-G"></use>
</svg><span class="name">收藏</span></a></li>
<li class="tool-item tool-active is-share"><a href="javascript:;"><svg class="icon" aria-hidden="true">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-csdnc-fenxiang"></use>
</svg>分享</a></li>
<!--打赏开始-->
<!--打赏结束-->
<li class="tool-item tool-more">
<a>
<svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
</a>
<ul class="more-box">
<li class="item"><a class="article-report">文章举报</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="person-messagebox">
<div class="left-message"><a href="https://blog.csdn.net/LI_AINY">
<img src="https://profile.csdnimg.cn/E/3/D/3_li_ainy" class="avatar_pic" username="LI_AINY">
<img src="https://g.csdnimg.cn/static/user-reg-year/1x/2.png" class="user-years">
</a></div>
<div class="middle-message">
<div class="title"><span class="tit"><a href="https://blog.csdn.net/LI_AINY" data-report-click="{"mod":"popu_379"}" target="_blank">LI_AINY</a></span>
</div>
<div class="text"><span>发布了135 篇原创文章</span> · <span>获赞 57</span> · <span>访问量 13万+</span></div>
</div>
<div class="right-message">
<a href="https://im.csdn.net/im/main.html?userName=LI_AINY" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
</a>
<a class="btn btn-sm bt-button personal-watch" data-report-click="{"mod":"popu_379"}">关注</a>
</div>
</div>
</div>