造轮子的一个小小的发现

当一个接口被两个service实现时,controller调用接口实现功能,会报错,提示开发者指定service,官方是建议你使用@Qualifier来区分的,但是,总有另一种方法实现的。

场景

public interface Hi{ String hi(); } @Service
public class Hi1 implements Hi{@Overridepublic String hi() {return "hi1";}
}@Service
public class Hi2 implements Hi{@Overridepublic String hi() {return "hi2";}
}
@Controller
public class SingerService { @Autowired private Hi hi; public String sing(){ return hi.hi(); } }
 

此时没指定具体的接口实现类,spring会报错,但是只要将Hi2改成

@Service
@Primary
public class Hi2 implements Hi{@Overridepublic String hi() {return "hi2";}
}

命令行就会输出

hi2

@Primary就是默认的意思,而他的使用情况当然不是用于service层了,而是在造轮子的时候,往往一个基本接口类有多次实现,我们只要给其中一个实现加上@Primary,那么在使用这个接口类的时候就不用每次都@Qualifier了,而且对于大多数开发者而言,只要理解使用默认的功能就足够了。

转载于:https://www.cnblogs.com/ydymz/p/9014571.html

@Primary 使用相关推荐

  1. kotlin重写构造方法编译报错:Primary constructor call expected

    在kotlin中使用construct关键字定义构造方法,如果类定义时已经有构造方法(类名后带括号),需要添加构造方法时,需要使用以下写法: class User(var name,var age){ ...

  2. key mysql_mysql中key 、primary key 、unique key 与index区别

    mysql中索引是非常重要的知识点,相比其他的知识点,索引更难掌握,并且mysql中的索引种类也有很多,比如primary key .unique key 与index等等,本文章向大家介绍mysql ...

  3. Database design best practice(1):关于primary key及其它

    1. The job of the primary key is to uniquely identify records, not to store business data ; any use ...

  4. PostgreSQL 9.3 beta2 stream replication primary standby switchover bug?

    [更新] 已有patch. 请参见. PostgreSQL 9.1,9.2,9.3 clean switchover Primary and Standby Patch. http://blog.16 ...

  5. Duplicate entry '0' for key 'PRIMARY'_Spring Batch

    2019独角兽企业重金招聘Python工程师标准>>> Duplicate entry '0' for key 'PRIMARY'_Spring Batch 在运行一个job成功后, ...

  6. 依赖注入@Autowired@Primary@Quelifier使用

    @Autowired 注入声明的SpringBean对象,根据一定的规则首先按照注入的类型去查找,如果没有找到安装注入的名称去匹配你要注入的属性名称,如果都没有找到启动项目时抛出异常,@Autowir ...

  7. [AlwaysOn Availability Groups]排查:Primary上的修改无法在Secondary体现

    排查:Primary上的修改无法在Secondary体现 客户端进程在primary上修改成功,但是在Secondary上却无法看到修改结果.这个case假设你的可用性组有同步的健康问题.很多情况下这 ...

  8. 验证mongodb副本集并实现自动切换primary~记录过程

    接 验证mongodb主从复制过程 1.创建数据目录 同 验证mongodb主从复制过程 的实验一样,本次实验也是采用直接指定启动参数来启动mongodb数据库,本次实验我们需要启动三个数据库,为了与 ...

  9. sqlservier2005转成sqlserver2000中出现的问题(WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY])

    公司的系统需要从sql2005转移到sql2000上,只需要表结构,主要的做法就是通过sqlserver提供的"任务\生成脚本"的向导将表结构导成脚本文件.问题是sql2005提供 ...

  10. mysql主从复制错误:Last_SQL_Error: Error #39;Duplicate entry #39;327#39; for key #39;PRIMARY#39;#39; ...

    这个算不算解决,我都不太清楚,因为我感觉网上的说法,只是把错误忽略了,不表示以后用从库时不会出问题!!! 解决的办法是在从库上执行: mysql> slave stop; mysql> s ...

最新文章

  1. Solr定时重建索引和增量更新
  2. [魔方]28秒!地铁站真是个破纪录的好地方
  3. 泛微文档存放在服务器哪个地址,泛微OA根据文档的docid查询文档附件存放的路径...
  4. C/C++学习之路: 模板和异常
  5. 法线有接缝_发送带有接缝的活动邀请
  6. centos-install-kong-cassandra
  7. python神经网络作用_Python · 神经网络(三*)· 网络
  8. 2015广州计算机网络试题及答案,2015广州大学计算机网络试卷-B卷及答案.doc
  9. 计算机视觉专业要学什么课程,[08本]“计算机视觉基础”课程介绍和课件
  10. win10获取注册表权限
  11. iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9443 -j DNAT
  12. OS 中的SID(安全标识)
  13. 台达plc控制伺服电机编程实例_分享3个台达PLC控制伺服项目接线及程序案例
  14. abb机器人编程指令写字_ABB 机器人编程指令.pdf
  15. 笔记本电脑上html怎样运行,手提电脑如何进入BIOS|笔记本电脑进入BIOS按哪个键...
  16. 计算机创建管理员用户名和密码,创建管理员密码是什么意思(图文)
  17. 2021-2027全球与中国自动卡车卸货系统 (ATLS)市场现状及未来发展趋势
  18. 阿里 + 京东 Java 岗面试题概要(面试须知)
  19. 【活动推荐】美团外卖两千万日订单背后的客户端技术架构
  20. 要闻 | 人大金仓重磅亮相2022南京软博会

热门文章

  1. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛-白色相簿
  2. 400G PAM4, ANEG LT 自适应及链路学习(Autonegotiation Link Training),浅析自适应及链路学习功能在400/200/100G PAM4模式
  3. mysql数据库怎么导出导入表
  4. 【英语语法疑难点】An estimated后接个名词复数是个什么用法?
  5. 微商在快手怎么引流?教你如何用快手引流
  6. 动态规划 HDU 1493 QQpet
  7. C语言练习题:计算一元二次方程!!
  8. 极验验证的滑动验证码破解
  9. 分布式系统之CAP和BASE理论
  10. 什么是数据结构,都有哪些数据结构