假设我有一个“SomeInterface”,我有两个实现这个“SomeInterface”的springComponentImpl。
我知道我可以同时自动连接两个实现,使用:
@Autowire
private List<SomeInterface> springComponentsImplList;
我可以这样注射吗?:
@Autowire
private Map<String,SomeInterface> springComponentsImplList;
这样我就可以通过一个“键”来得到实现了,如果这个键是类名或者其他什么东西,并且是自动生成的,那就太完美了。
2条答案
按热度按时间nimxete21#
下面的代码应该是现成的,其中Map包含bean名称作为键,对应的bean示例作为值:
但是您也可以尝试使用
ListableBeanFactory
获取特定类型的所有bean示例沿着名称:bfrts1fy2#
您可以将Spring Bean注入到两个单独的
List
中**第一种方法:**如果您只有其中的每一个,则使用
@Qualifier
来命名它们服务接口
实施一
实施二
您可以使用
@Qualifier
**第二种方法:**如果有多个,则可以使用
@Qualifier
5.2. Using @Qualifier to Select Beans在config类中声明它们另外,如果您想在
Map
中执行这些操作,请使用构造函数注入