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

最近 接触一个电商系统后台,需要了解支付模块的开发时候,发现了这样一段有趣的代码

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

业务层getPaymentPlugins()方法中没有任何查询.但是 paymentPlugins竟然有值,

public abstract class PaymentPlugin implements Comparable<PaymentPlugin> {

查询了系统各个配置以及SQL语句 没有相关的配置啊

在多方google 百度下,了解了

原来是spring @Inject 注解可以注入抽象类 或者接口的子类的集合

子类配置:

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

很佩服这种思维.

转载于:https://my.oschina.net/u/2563735/blog/1809479

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值