以编程方式将Bean添加到Spring Web App上下文

由于采用了插件架构,因此我试图以编程方式将bean添加到我的webapp中。我有一个通过@Component注释创建的Spring bean ,并且正在实现ApplicationContextAware接口。

我的覆盖函数如下所示:

@Override

public void setApplicationContext(ApplicationContext applicationContext)

throws BeansException {

// this fails

this.applicationContext = (GenericWebApplicationContext) applicationContext;

}

基本上,我不知道如何向给setApplicationContext的applicationContext对象添加一个bean。谁能告诉我我将如何处理错误的方法?

好的,这就是我最终得到的解决方案:

@Override

public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry bdr)

throws BeansException {

BeanDefinition definition = new RootBeanDefinition(

<My Class>.class);

bdr.registerBeanDefinition("<my id>", definition);

}

回答:

在Spring 3.0中,你可以使自己的bean实现BeanDefinitionRegistryPostProcessor并通过来添加新的bean BeanDefinitionRegistry

在早期版本的Spring中,你可以执行相同的操作BeanFactoryPostProcessor(尽管你需要强制转换BeanFactory为BeanDefinitionRegistry,这可能会失败)。

以上是 以编程方式将Bean添加到Spring Web App上下文 的全部内容, 来源链接: utcz.com/qa/408746.html

回到顶部