spring @Inject 注入接口/抽象類的子類集合

最近 接觸一個電商系統後臺,須要瞭解支付模塊的開發時候,發現了這樣一段有趣的代碼java

@Inject
	private List<PaymentPlugin> paymentPlugins = new ArrayList<>();
@Override
	public List<PaymentPlugin> getPaymentPlugins() {
		Collections.sort(paymentPlugins);
		return paymentPlugins;
	}

業務層getPaymentPlugins()方法中沒有任何查詢.可是 paymentPlugins居然有值,spring

public abstract class PaymentPlugin implements Comparable<PaymentPlugin> {

查詢了系統各個配置以及SQL語句 沒有相關的配置啊ide

在多方google 百度下,瞭解了google

原來是spring @Inject 註解能夠注入抽象類 或者接口的子類的集合code

子類配置:接口

@Component("alipayPagePaymentPlugin")
public class AlipayPagePaymentPlugin extends PaymentPlugin {

很佩服這種思惟.ip

相關文章
相關標籤/搜索