美文网首页
springboot单抽象方法多实现调用介绍

springboot单抽象方法多实现调用介绍

作者: _Kantin | 来源:发表于2021-11-11 16:29 被阅读0次

    背景

    • 在项目开发中,不小心在两个不同的service中重新了同一个抽象类的抽象方法,引起了报错,特此记录一下。
    • 由于我的serviceImpl中的@service并没有标记别名,因此报错的信息如下: No qualifying bean of type 'com.xxxx.apis.service.xxxx.xxxx' available: expected single matching bean but found 2: xxxxGameServiceImpl,xxxxCpsServiceImpl。

    代码

    • 其实解决办法就行给service类设置别名,然后在注入抽象类时进行指定
    • 两个简单的实现:
    
    @Service("weixinPay")
    public class WeixinPay implements Pay{
        @Override
        public Object pay(Map<String, Object> map){
            return "weixinpay";
        }
    
    @Service("aliPay")
    public class AliPay implements Pay{
        @Override
        public Object pay(Map<String, Object> map){
            return "alipay";
        }
    }
    
    • 相关的调用方法
    //方法1
    @Resource(name="weixinPay")
    ShopPay weixinPay;
        
    @Resource(name="aliPay")
    ShopPay aliPay;
    
    //方法2
    
    @Autowired
    @Qualifier("weixinPay")
    ShopPay weixinPay;
     
    @Autowired
    @Qualifier("aliPay")
    ShopPay aliPay;
    

    相关文章

      网友评论

          本文标题:springboot单抽象方法多实现调用介绍

          本文链接:https://www.haomeiwen.com/subject/ahkgzltx.html