目的:一个接口多个实现时,根据不同的条件调用不用的实现
1、有如下接口
public interface Pay { public Object pay(Map<String,Object> map); }
2、有如下两个实现
实现一:
@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"; } }
3、根据不同的条件调用不同的实现
方法一:
@Resource(name="weixinPay") ShopPay weixinPay; @Resource(name="aliPay") ShopPay aliPay;
方法二:
@Autowired @Qualifier("weixinPay") ShopPay weixinPay; @Autowired @Qualifier("aliPay") ShopPay aliPay;