当前位置: 首页 > 知识库问答 >
问题:

使用spring将大量bean实例注入到没有xml配置的Map/List中

柳灿
2023-03-14

@Component(“InstanceA”)公共类A实现I{
...
}

为了简化起见,我们可以首先假设所有实例实现相同的接口,但这并不总是正确的。

共有1个答案

怀经赋
2023-03-14

您可以使用bean工厂访问所有必需的bean

@Autowired
private ListableBeanFactory beanFactory;

BeanSofType.getBeanSofType()返回映射BeanName->Bean

您只需要知道bean名称,您想要“注入”这些名称。列出必要的姓名;

Map<String, YourInterface> beansOfType = beanFactory.getBeansOfType(YourInterface.class);

List<YourInterface> necessaryBeanNames.stream().map(b-> beansOfType.get(b)).filter(b -> b != null).collect(toList());
 类似资料:
  • 或 因为bean注入将注入A的实现,在spring配置中是B。我不想指定泛型类型,因为这会稍微违背使用泛型的目的。

  • 问题内容: 我想使用jsf批注和一些spring批注将spring bean /服务注入jsf托管bean。(在jsf bean上,我只想使用jsf批注)我不想使用的批注。 我试图在网上找到解决方案,但没有任何运气。 例 在不使用xml的情况下,这样的事情是可能的。例如,我不想使用类似 或在 是否可以在不使用config xml文件中的每个bean定义所有jsf bean /属性和spring B

  • 问题内容: 我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如 我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情 因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容: 但是我不清楚我如何从中访问我感兴趣的财产? 问题答案: 你可以在Spring 3中使用EL支持进行此操作

  • 问题内容: 我有一堆Spring bean,它们是通过注释从类路径中拾取的,例如 在Spring XML文件中,定义了一个PropertyPlaceholderConfigurer: 我想将app.properites的属性之一注入到上面显示的bean中。我不能简单地做这样的事情 因为PersonDaoImpl在Spring XML文件中没有功能(它是通过注释从类路径中拾取的)。我有以下内容: 但

  • 我使用spring boot@Configuration类注释创建了一个bean,如下所示 在其中一个应用程序中,我使用SpringXML创建bean,然后使用SpringBoot加载它们。在那里,我试图用XML创建相同的bean,但它不起作用,我在下面尝试了 如何在SpringXML中创建等效的基于Java的bean? Spring版本:5.2.4。发布Spring boot版本:2.2.5。释

  • spring日志中的info消息显示: 示例: 下面有一个简单的示例,可以使用。这里,Bar是嵌套在Foo内部的,我需要模拟Bar进行测试: 现在对于测试来说,假设我想注入一个mockbar而不是真正的bar。我如何在下面的测试类中实现这一点? 实际测试用例: