天天看点

Java 自定义上下文_java – 将自定义bean添加到Spring上下文

您的观察实际上是正确的,

BeanFactoryPostProcessor是Spring提供一种机制来修改bean定义/实例的两种方式之一,然后再将它们提供给应用程序(另一种方法是使用

BeanPostProcessors)

您绝对可以使用BeanFactoryPostProcessors来添加/修改bean定义,这里有一个来自Spring Integration代码库的示例,如果没有用户明确指定,它会添加一个errorChannel,您可以使用类似的代码来注册新的bean:

RootBeanDefinition errorChannelDef = new RootBeanDefinition();

errorChannelDef.setBeanClassName(IntegrationNamespaceUtils.BASE_PACKAGE

+ ".channel.PublishSubscribeChannel");

BeanDefinitionHolder errorChannelHolder = new BeanDefinitionHolder(errorChannelDef,

IntegrationContextUtils.ERROR_CHANNEL_BEAN_NAME);

BeanDefinitionReaderUtils.registerBeanDefinition(errorChannelHolder, registry);