gpt4 book ai didi

java - 在实例化阶段之前/期间检索 Bean 类

转载 作者:行者123 更新时间:2023-11-30 01:50:12 25 4
gpt4 key购买 nike

在 Spring 应用程序中,可以使用 applicationContext.getBeansOfType(Object.class) 检索所有(?)Bean。这当然只有在创建了所有 Bean 之后才有可能。

因此,如果我在 Bean 的构造函数中调用此方法,我必须很幸运,成为最后一个创建的 Bean,才能访问所有这些 Bean。

据我了解life cycle对于 Spring Beans,在初始化 Beans 之前有一个创建 BeanDefinition 的阶段。

  • 如何在 Bean 的构造函数中检索所有创建的 BeanDefinition?
  • 我还可以检索这些 BeanDefinition 的类型(如 Class)吗?类型BeanDefinition似乎只提供“此 bean 定义的当前 bean 类名称”

或者是在构造所有 Bean 后获取这些类型的唯一方法(例如 @PostConstruct)?

最佳答案

也许这段代码可以帮助

    for (String name : applicationContext.getBeanFactory().getBeanDefinitionNames()) {
BeanDefinition beanDefinition = applicationContext.getBeanFactory().getBeanDefinition(name);
String className = beanDefinition.getBeanClassName();
Class<?> clazz = Class.forName(className);
}

循环获取所有BeanDefinition,然后加载每个类并执行您想要的操作?

顺便说一句,这可能不是使用 Spring 的好方法,但它会起作用。

关于java - 在实例化阶段之前/期间检索 Bean 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56343526/

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