以编程方式将 Bean 添加到 Spring Web App 上下文中
2022-08-31 15:20:13
由于插件体系结构,我正在尝试以编程方式将Bean添加到我的Web应用程序中。我有一个通过注释创建的Spring bean,我正在实现该接口。@Component
ApplicationContextAware
我的覆盖函数如下所示:
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
// this fails
this.applicationContext = (GenericWebApplicationContext) applicationContext;
}
基本上,我无法弄清楚如何将bean添加到为setApplicationContext给出的应用程序Context对象中。谁能告诉我我是如何以错误的方式做到这一点的?
好吧,这就是我最终的解决方案:
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry bdr)
throws BeansException {
BeanDefinition definition = new RootBeanDefinition(
<My Class>.class);
bdr.registerBeanDefinition("<my id>", definition);
}