SpringBoot中接口有多个实现时,通过注解去选择合适的实现Bean

根据问题现状,创建好对应的代码格式,如下图:

service包下的接口StudentService和它的两个实现类BoyStudentImpl和GirlStudentImpl分别如下图所示:

在controller下要引用这个service,一般是如下图方式去引用:

@Autowired
StudentService service;

但是因为目前一个接口不止一个实现类,所以之前的引用方式在这种情况下不适合,下面展示在这种情况下一个controller中引用多个bean:

第一种,service对象名要和beanName相同:

如果不相同的话会有如下的提示:

第二种,@Autowired + @Qualifier配合使用,如下图:

同时发现这种方式会覆盖第一种方式,service选的bean以Qualifier中的value为准。

第三种,使用@Resource注解,如下图

与第二种方式相比,效果一样。

目前根据使用情况,整理了3种方式,希望对大家有帮助

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值