Spring @Qualifier,@Primary
[Q&A] @Qualifier 引入背景
在使用 @Inject 或 @Autowired 进行依赖注入时,默认是 按类型匹配 Bean 的,但如果容器中有多个相同类型的 Bean,Spring 就无法确定该注入哪一个,会抛出异常:NoUniqueBeanDefinitionException
这就需要一个机制来 明确指定注入哪一个 Bean。
[Q&A] @Primary引入背景?
在使用 @Autowired 或 @Inject 进行自动装配时,默认是按 类型匹配 Bean,但如果存在多个Bean,Spring 就无法确定该注入哪一个,会抛出异常:NoUniqueBeanDefinitionException
。此时,开发者需要一种方式告诉 Spring:“如果有多个匹配项,请优先使用这个 Bean。”这就是 @Primary 引入的核心目的。
[Q&A] @Qualifier 和 @Primary 对比?
特性 | @Qualifier | @Primary |
---|---|---|
引入年份 | 2007 年(随 Spring 2.5 引入) | 2007 年(随 Spring 2.5 引入) |
作用 | 明确指定注入哪一个 Bean(通过名称或语义标签) | 标记某个 Bean 为首选 Bean(默认注入项) |
@Service
public class OrderService {@Autowiredprivate PaymentService paymentService; // 会注入被 @Primary 标记的 Bean@Autowired@Qualifier("alipayService")private PaymentService alipay; // 明确注入特定 Bean
}
典型用法
Spring @Qualifier 典型用法
Spring @Primary 典型用法
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/243143.html
如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!