BeanPostProcessor не вызывается для методов @Bean с помощью Spring Java Config
Я пытаюсь добавить BeanPostProcessor в мой Spring Java Config. Кажется, он работает, но только для bean-компонентов, которые создаются путем сканирования компонентов (@Configuration, @RestController, ..)
Бины, которые я создаю в своем конфиге Java, не являются.
Например
@Configuration
public class MyConfiguration
{
@Bean
public MyBean myBean()
{
return new MyBean();
}
@Bean
public static MyBPP myBeanPostProcessor()
{
return new MyBPP();
}
}
Обратите внимание, что я объявил метод BeanPostProcessor как статический (см. http://forum.spring.io/forum/spring-projects/container/123899-beanpostprocessor-with-bean-annotation-not-working).
Таким образом, создается экземпляр MyBean, но BeanPostProcessor никогда его не обрабатывает.
1 ответ
Решение
Попробуй мой тест, у меня сработало
class MyBPP implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) {
System.out.println(bean);
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) {
return bean;
}
}
@Configuration
public class MyConfiguration {
@Bean
public MyBean myBean() {
return new MyBean();
}
@Bean
public MyBPP myBeanPostProcessor() {
return new MyBPP();
}
public static void main(String[] args) {
new AnnotationConfigApplicationContext(MyConfiguration.class);
}
}