@Primary 和 @Qualifier的区别
当一个接口有多个不同实现时,注入Spring的时候会产生org.springframework.beans.factory.NoUniqueBeanDefinitionException异常信息。
解决方式有2种,使用@Primary 和 @Qualifier注解。
注解 | 区别 |
---|---|
@Primary | 优先注入该注解的标注的bean |
@Qualifier | 确定注入该注解标定的bean |
1、@Qualifier
该注解的意思是直接注入该注解标定的bean,而非选择。如:
public interface ITeacher {String getName();
}
@Component
public class MathTeacher implements ITeacher {public String getName() {return "Math";}
}
@Component
public class EnglishTeacher implements ITeacher {public String getName() {return "English";}
}
如果这个时候使用@Autowired就会报错,需要指定注入具体对象:
public class ClassRoom {@Autowired@Qualifier("englishTeacher")public ITeacher teacher;
}
2、@Primary
@Qualifier是在使用注入的时候,使用方明确指出使用哪个;@Primary更像是提供方告诉你优先使用哪个。举个例子,你实现排序接口的很多的实例,如冒泡排序,快排,选择排序等等。在使用者选择不明确的情况下,你希望他优先(默认)选择冒泡排序。这样你就在冒泡排序实现类上使用@Primary予以标识。
public interface ISort {String getName();
}
@Component
@Primary
public class MaopaoSort implements ISort {public String getName() {return "冒泡排序";}
}
@Component
public class XuanzeSort implements ISort {public String getName() {return "选择排序";}
}
public class MySort {@Autowiredpublic ISort sort;
}
@Primary 和 @Qualifier的区别相关推荐
- spring的@primary和@qualifier注解解决一个接口多个实现的注入问题
spring的@primary和@qualifier注解解决一个接口多个实现的注入问题 参考文章: (1)spring的@primary和@qualifier注解解决一个接口多个实现的注入问题 (2) ...
- @Primary和@Qualifier 使用
@Primary 当有两个带有注解的类,同时实现同一个接口的时候,spring 根据类型无法选择到底注入哪一个,这个时候,你就需要加上@Primary注解来作为唯一标识,可以优先选择哪一个具体的实现, ...
- @Primary和@Qualifier注解
@Primary和@Qualifier注解,都是处理@Autowired注入时,发现多个相同类型的冲突时,进行解决. 实际项目中,@Autowired,默认是byType注入,当发现多个实现类的时候, ...
- @Autowired @Resource @Qualifier的区别
@Autowired @Resource @Qualifier的区别 实用理解:@Autowired @Resource 二选其一,看中哪个就用哪个. 简单理解: @Autowired 根据类型注入, ...
- 解决多类型冲突的三种方式(@Primary、@Qualifier注解)
目录标题 知识预热 @Autowired(先byType后byName) @Qualifier(byName) @Primary(byType) @Primary和@Qualifier注解的作用 注入 ...
- primary key 和 unique区别
primary key 和 unique区别 主要区别: pri:复合主键的时候,和唯一即可 nn+un:每一个元素都要唯一 unique 可空,可以在一个表里的一个或多个字段定义:primary k ...
- apring中@Primary和@Qualifier注解的区别
首先说明一下两个注解的作用 @Primary:在众多相同的bean中,优先选择用@Primary注解的bean(该注解加在各个bean上) @Qualifier:在众多相同的bean中,@Qualif ...
- @Primary 和 @Qualifier
问题 当一个接口有2个不同实现时,使用@Autowired注解时会报org.springframework.beans.factory.NoUniqueBeanDefinitionException异 ...
- @Primary和@Qualifier
@Primary 和 @Qualifier_tom和cat的博客-CSDN博客_@primary 问题描述:就是一个接口KKService, 有两个实现类:@Service("kkServi ...
最新文章
- labview 串口通信开发基础详解
- windows 2008 enterprise tcpip.sys问题总结。
- 30秒就能学会一个Python小技巧?
- Spring的HelloWorld
- HttpURLConnection总结
- alert 标题_[SwiftUI 知识碎片] Button、Image 和 Alert
- 容器技术之快速了解K8S各抽象资源及组件架构
- redis-cli 常用命令
- Linux操作系统内核启动参数详细解析[转]
- 联想笔记本那些有手写功能_联想笔记本如何使用vista自带的手写输入法tablet pc...
- Java中反射性能测试
- 排序算法2:冒泡排序
- C语言各数据类型所占内存空间大小
- 计算机网络里面ap是什么,网络ap是什么意思
- RAKsmart美国云服务器配置升级教程
- 玩转软路由 篇二:软路由中Esxi 7.0 安装教程和避坑指南
- JavaScript事件——【小案例】小人快跑
- Vmware更新为16后,原本正常使用的虚拟机网络不通
- 英特尔夏乐蓓:物联网正成为现实
- 锐捷NBR路由器 EWEB网管系统 远程命令执行漏洞 + GetShell