1. 程式人生 > >一個介面多個實現,指定實現類

一個介面多個實現,指定實現類

目的:一個介面多個實現時,根據不同的條件呼叫不用的實現

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;