gpt4 book ai didi

java - @Autowire 接口(interface)作为 Map 是可能的吗?

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:35 25 4
gpt4 key购买 nike

假设我有一个“SomeInterface”并且我有两个实现该“SomeInterface”的 springComponentImpl。

我知道我可以同时 Autowiring 两个实现:

@Autowire
private List<SomeInterface> springComponentsImplList;

我可以用这样的方式注入(inject)它们吗?

@Autowire
private Map<String,SomeInterface> springComponentsImplList;

这样我就可以通过“ key ”获得实现?如果该键是类名或其他名称并自动生成,那就完美了。

谢谢!

最佳答案

以下应该开箱即用,其中映射包含 bean 名称作为键,相应的 bean 实例作为值:

@Autowired
private Map<String, Foo> allBeansOfType;

但您也可以尝试使用 ListableBeanFactory 获取特定类型的所有 bean 实例及其名称:

private Map<String, Foo> allBeansOfType;

@Autowired
public MyClass(ListableBeanFactory beanFactory) {
this.allBeansOfType = beanFactory.getBeansOfType(Foo.class);
}

关于java - @Autowire 接口(interface)作为 Map<String, InterfaceName> 是可能的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58277097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com