Spring 的 @Primary 注解

摘要:
这在大量应用组件扫描时经常出现。

简单的说,就是当Spring容器扫描到某个接口的多个 bean时,如果某个bean上加了@Primary 注解 ,则这个bean会被优先选用,如下面的例子:

@Component
 public classFooService {

     privateFooRepository fooRepository;

     @Autowired
     publicFooService(FooRepository fooRepository) {
         this.fooRepository =fooRepository;
     }
 }

 @Component
 public class JdbcFooRepository extendsFooRepository {

     publicJdbcFooRepository(DataSource dataSource) {
         //...
}
 }

 @Primary
 @Component
 public class HibernateFooRepository extendsFooRepository {

     publicHibernateFooRepository(SessionFactory sessionFactory) {
         //...
}
 }

因为HibernateFooRepository上面有注解@Primary,所以它将优先JdbcFooRepository被注入到FooService中。这在大量应用组件扫描时经常出现。

转载于:https://www.cnblogs.com/hzhuxin/p/10980021.html

免责声明:文章转载自《Spring 的 @Primary 注解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇git push到Gitee的时候上传不成功,可能是本地文件夹与远程仓库不同步more和less命令详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring中创建bean的方式

一、常见的bean创建方式 (1)基于xml配置bean (2)使用@Component派生注解 (3)使用@Configuration和@Bean注解 1、常见的使用xml中setter方法创建bean bean.xml文件中配置bean时,加上<property>标签设置bean所需参数 <bean class="com.sw...

java反射知识点总结

一.java反射基础 1.1 什么叫java反射? 答:程序运行期间,动态的获取类的基本信息。比如:创建对象,调用类的方法,获得类的基本结构。这样给程序设计提供了很大的灵活性。个人总结就是:根据动态需求,生成动态的响应。java的Class类是java反射机制的基础,反射也是让虚拟机加载指定类。这就用到了java的类装载机制,jvm加载字节码文件,并生成c...

Solon详解(一)- 快速入门

Solon详解系列文章:Solon详解(一)- 快速入门Solon详解(二)- Solon的核心Solon详解(三)- Solon的web开发Solon详解(四)- Solon的事务传播机制Solon详解(五)- Solon扩展机制之Solon PluginSolon详解(六)- 定制业务级别的验证注解 一、Solon 最近号称小而美的的Solon框架,终...

shiro 框架基本讲解【转载】

shiro 框架基本讲解【转载】 什么是权限管理: 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问...

Spring源码解析系列汇总

相信我,你会收藏这篇文章的 本篇文章是这段时间撸出来的Spring源码解析系列文章的汇总,总共包含以下专题。喜欢的同学可以收藏起来以备不时之需 SpringIOC源码解析(上) 本篇文章搭建了IOC源码解析的demo环境,启动这个环境即可开启阅读Spring源码的第一步 开始源码阅读时介绍了Spring容器中最经典的容器ClassPathXmlAppli...

Spring框架第一天(搭建项目)

Spring框架 1.简介 1.1 Spring是什么 一个开源的框架,是JavaEE开源框架 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了展现层 Spring...