【问题标题】:list of all spring managed beans所有 Spring 管理 bean 的列表
【发布时间】:2014-04-01 07:07:13
【问题描述】:

我在我的 spring 项目中使用基于注释的配置。我使用@Autowired 注入类,这些类使用@Service、@Component、@Repository、@Controller 等适当的注解进行注解。我有两个问题:

  1. 我是否可以通过某种方式获得 Spring 的 BeanFactory 实例?
  2. 我可以获取所有由 spring 管理的 bean 的列表吗?

【问题讨论】:

    标签: java spring spring-mvc dependency-injection


    【解决方案1】:

    像这样注入上下文:

     @Autowired private ApplicationContext appContext;
    

    这会将当前上下文注入到 bean 中。由于这实现了ListableBeanFactory,因此您可以使用getBeanDefinitionNames() 获取所有bean 的名称

    【讨论】:

    • 感谢您的帮助。先生还有一个问题:我可以通过调用 appContext.getBean("name of bean") 并使用注释来创建 bean(就像自动装配的 bean)吗?
    • 是的,注入的上下文与用于自动装配的上下文完全相同。而自动装配只是一个BeanFactoryPostProcessor,它最终会调用appContext.getBean() 方法之一。
    • Spring 的神奇之处在于它不涉及任何魔法。一切都如你所愿(嗯,大部分时间;-)
    猜你喜欢
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2011-09-12
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多