【发布时间】:2015-12-27 23:34:16
【问题描述】:
我的用例涉及动态创建 bean。我发现它们是注册 bean 定义的两个选项:
ImportBeanDefinitionRegistrar 和 BeanDefinitionRegistryPostProcessor
我想了解两者之间的区别。
谢谢, 普拉提克
【问题讨论】:
我的用例涉及动态创建 bean。我发现它们是注册 bean 定义的两个选项:
ImportBeanDefinitionRegistrar 和 BeanDefinitionRegistryPostProcessor
我想了解两者之间的区别。
谢谢, 普拉提克
【问题讨论】:
BeanDefinitionRegistrar 必须与@Import 注解一起使用
@Configuration
@Import(MyImportBeanDefinitionRegistrar.class)
public class MainConfiguration {
}
而 BeanDefinitionRegistryPostProcessor 应该这样使用
@Bean
public static MyBeanDefinitionRegistryPostProcessor myBeanDefinitionRegistryPostProcessor() {
return new MyBeanDefinitionRegistryPostProcessor();
}
但是在 spring 3.2.16 上,两者都无法修改我自己使用 @Bean 创建的 bean 定义,它们似乎被提前调用了。
【讨论】: