一、(Spring)项目 一个接口多个实现,指定实现类
目的:一个接口多个实现时,根据不同的条件调用不用的实现
1、有如下接口
1 2 3
| public interface Pay { public Object pay(Map<String,Object> map); }
|
2、有如下两个实现
实现一:
1 2 3 4 5 6 7
| @Service("weixinPay") public class WeixinPay implements Pay{ @Override public Object pay(Map<String, Object> map){ return "weixinpay"; } }
|
实现二:
1 2 3 4 5 6 7
| @Service("aliPay") public class AliPay implements Pay{ @Override public Object pay(Map<String, Object> map){ return "alipay"; } }
|
3、根据不同的条件调用不同的实现
方法一:
1 2 3 4 5
| @Resource(name="weixinPay") ShopPay weixinPay; @Resource(name="aliPay") ShopPay aliPay;
|
方法二:
1 2 3 4 5 6 7
| @Autowired @Qualifier("weixinPay") ShopPay weixinPay;
@Autowired @Qualifier("aliPay") ShopPay aliPay;
|