基于SpringBoot的策略模式多实现类注入(Map注入)
·

一. 问题背景
公司项目中用到了一个Map注入,如下:
@Autowired
private Map<String, XXXService> discountInfoMap;
二. 研究
上面Map的注入方式是一个多实现类的注入。一般我们都是注入单个实现类,比如:
@Autowired
private XXXService service;
解释:
@Autowired是按照byType注入的(即按照bean的类型),当XXXService有多个实现类时,用上面代码块的方式进行注入,会报错。
当采用了策略模式设计了一个interface,它有多个实现类,应该使用如下的方式进行注入:
@Autowired
private Map<String, XXXService> discountInfoMap;
解释:Map的key就是bean的beanName,value就是实现类
更多推荐
所有评论(0)