java - 从 Configuration-annotated 类注册 beans

标签 java spring javabeans spring-annotations

我有一个用 @Configuration 注释的类(我们称它为 StubConfiguration),它有一个用 @Bean 注释的方法。此方法返回一个 BeanFactoryPostProcessor 实现,它负责注册一些 bean。但是,Spring 无法解析该工厂在运行时注册的 bean。

我的假设是 StubConfiguration 被 Spring 的组件扫描拾取,注册 BeanFactoryPostProcessor 然后调用它的 postProcessBeanFactory() 方法,随后注册我需要的 bean。

我是不是想错了?我如何使用此后处理在我的 ApplicationContext 中注册我需要的 bean?

最佳答案

如果您还使用 XML 应用程序上下文来声明 beans,您可以告诉 Spring 进行组件扫描并将 @Stub 视为 Spring 组件注释。

<context:component-scan base-package="your.base.package">
    <context:include-filter type="annotation" expression="your.stub.package.Stub"/>
</context:component-scan>

如果您只使用注释配置应用程序上下文,请查看 this answer寻找一种无需 XML 即可完成此操作的方法。

关于java - 从 Configuration-annotated 类注册 beans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11110003/

相关文章:

java - 无法使用 Maven 编译简单的 Java 10/Java 11 项目

java - 如何在 Servlet 中创建/访问scopend bean?

java - JSP:useBean类属性 "javaPackage.java class"无效

java - JScrollPane 内的 JPanel 在滚动时出现图形故障

java - Java Rest API JAX-RS 中的多个参数 - GET 方法

java - 从其他 JVM 调用其他 JVM 中的任何其他 servlet 的最佳实践是什么

java - 从原始 @Transactional 方法调用 @Transactional 方法会导致同一类中出现回滚问题

java - Spring 组件字段线程安全

java - 如何在 Java(不是 java 8)中迭代 JsonArray

java - 如何使用Java解码html代码?