我有一个用 @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/