从Spring上下文中获取一个bean(以编程方式注册)?

乔纳森:

我以编程方式注册了bean:

@Autowired
private GenericApplicationContext applicationContext;

[...]

applicationContext.registerBean("a0", A.class, () -> new A(0));

// make sure to set up the bean
applicationContext.getBean("a0");

当我想按名称获取此bean时,它可以工作并且总是返回相同的实例:

applicationContext.getBean("a0");

但是,当我想获取所有A.class类型的bean时,它将返回一个空Map:

Map<String, A> as = applicationContext.getBeansOfType(A.class);

如= []!

我正在使用Spring 5.0,为什么Spring可以在上下文中考虑没有A类型的bean却可以按名称检索它们呢?

user7294900:

改用BeanFactoryUtils.beansOfTypeIn includedAncestors

BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, A.class)

春季论坛答案

不考虑该工厂可能参与的任何层次结构。也可以使用BeanFactoryUtils的beansOfTypeIn includedAncestors将Bean包括在祖先工厂中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Freemarker宏的上下文中获取Spring bean?

在Spring上下文中模拟bean

如何在ios 9,目标C中使用“在当前上下文中”演示以编程方式导航到另一个视图控制器

如何使用外键从另一个上下文中获取名称?

Kotlin Spring无法在应用程序上下文中注册Bean

Micronaut:从上下文中获取bean的问题

ES6如何在另一个上下文中的类内部获取_this

在Spring bean上下文中声明对象数组

在Spring Web上下文中添加动态bean

如何以编程方式向Spring上下文添加@Bean定义?

以编程方式将Bean添加到Spring应用程序上下文

以编程方式将Bean添加到Spring Web App上下文

如何从另一个上下文获取 React 上下文?

如何将OpenGL上下文中的纹理复制到另一个上下文

以编程方式将Bean注入CDI上下文?

以编程方式添加一个上下文菜单,该菜单的Click处理程序知道右键单击了哪个项目

在一个上下文中而不是另一个上下文中禁用python模块的日志记录

在用户上下文中将数据从一个Web应用传输到另一个Web应用的安全方式

XSLT测试给定上下文中的后续标记是否为最后一个

在Xstrem中的另一个对象的上下文中解析XML对象

Ruby RSpec仅在一个上下文中定义钩子之前/之后

在另一个上下文中引用身份用户

如何在另一个上下文中显示对话框?

在另一个上下文中执行PowerShell脚本

当不在对象上下文中时,在同一个类中使用$ this

Java:在原始线程的上下文中,从另一个线程调用回调

检查一个cubit是否在上下文中

如何在Entity Framework中从一个上下文中删除项目?

Component.GetComponent <T>()是一个方法,在给定的上下文中无效