Spring bean定义——获取bean类

标签 spring web-applications spring-bean

我正在尝试获取 Bean 类名而不初始化 bean。
我需要知道这个类,我可以从 applicationContext 获取 bean 并从 bean 实例中检查类名,但是我想知道这个类而不实际创建/初始化 bean..
是否可以 ?

 Object bean = applicationContext.getBean("beanName");
 bean.getClass();

最佳答案

创建 ApplicationContext 后,您无法执行此操作.最ApplicationContext实现将 refresh()自己并强制实例化 bean。

您可以做的是创建一个 BeanFactoryPostProcessor您可以在其中获取目标 bean 定义并检查 bean 类。

@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    String className = beanFactory.getBeanDefinition("").getBeanClassName();
}

但请注意,作为 getBeanClassName() 的 javadoc状态

Hence, do not consider this to be the definitive bean type at runtime but rather only use it for parsing purposes at the individual bean definition level.



所以用一粒盐。

如果您向我们提供有关您要完成的工作的更多详细信息,则可能有其他选择。

关于Spring bean定义——获取bean类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21435522/

相关文章:

spring - 如何在 Spring Security 3.2 中有问题地设置 Access-Control-Allow-Origin 过滤器

java - 0 :25:01, 819 警告 [HtmlImageRendererBase] 缺少 ALT 属性:j_id113

作为 JAR 项目运行的 Spring JMS

ruby-on-rails - 如何在不更改代码的情况下将单站点应用程序变成可维护的多站点应用程序?

java - 在 Java Web 应用程序中执行异步操作的最简单方法

java - 使用 Spring Boot 注册普通 java 类

sap-commerce-cloud - 我如何在运行时知道为我的 Spring bean 设置了哪些实现类?

java - 解决 Spring MVC 3.2.8 中的占位符

html - 在手机上与另一个DIVs边距下的DIV交互

java - 为什么 spring boot 找不到我的 bean?