Spring @Autowired 注入的一个小技巧

平常我们见得多的Spring @Autowired 注入很好理解,把一个Spring的bean 通过by type方式注入给一个变量,比如:

@Autowired

private PushMessageService pushMessageService;

这样,Spring就会自己在容器里找一个 PushMessageService  类型的bean注入。


今天我要说的,就是一个平时不太会想到的一个小技巧。假如系统里有A,B,C,D,E 四个都是 PushMessageService 类型的不同名字的bean,那么上面这种

注入方式就会报错,系统找不到唯一此类型的bean注入!虽然你看不到A,B,C,D,E这五个bean在Spring容器中存在的方式,也不清楚它们放在哪。在这种情况

下,你可以注入一个List<PushMessageService >到你的变量中,比如 :

@Autowired

private List<PushMessageService> pushMessageServiceList;

Spring可自动把 A,B,C,D,E五个PushMessageService类型的bean放在一个List中,并注入到以上pushMessageServiceList中去的。这样是不是很爽?哈哈。


JAVA的设计模式中的模板模式,代理模式等都有一些类型一样的bean,如果以上面这种以List的方式注入到一个变量,到时通过服务定位、找各自bean的

特征来调用各个bean,就可以设计做出比较简洁易懂的程序的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值