由于插件架构,我正在尝试以编程方式将bean添加到我的webapp中.我有一个通过@Component注释创建的Spring bean ,我正在实现该ApplicationContextAware接口.
我的覆盖功能如下所示:
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
// this fails
this.applicationContext = (GenericWebApplicationContext) applicationContext;
}
Run Code Online (Sandbox Code Playgroud)
基本上,我无法弄清楚如何将bean添加到setApplicationContext的applicationContext对象.任何人都可以告诉我我是怎么做错的方式吗?
好的,这就是我最终得到的解决方案:
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry bdr)
throws BeansException {
BeanDefinition definition = new RootBeanDefinition(
<My Class>.class);
bdr.registerBeanDefinition("<my id>", definition);
}
Run Code Online (Sandbox Code Playgroud)