目的:一个接口多个实现时,根据不同的条件调用不用的实现
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;