java - BeanPostProcessor 不为 @Bean 方法调用 Spring Java Config

标签 java spring spring-boot spring-java-config

我正在尝试在我的 Spring Java 配置中添加一个 BeanPostProcessor。它似乎但仅适用于通过组件扫描创建的 bean(@Configuration、@RestController、..)

我在 Java 配置中创建的 Bean 不是。

例如

@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 永远不会处理它。

最佳答案

试试我的测试,它对我有用

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);
    }
}

关于java - BeanPostProcessor 不为 @Bean 方法调用 Spring Java Config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23912134/

相关文章:

java - Android Datepicker日期添加并以个位数显示

spring - 将应用程序从 grails 2.0.x 升级到 2.4.x

spring-boot - EnableAuthorizationServer 2.4.0 迁移

java - 如何从 CXF/JAX-RS 中的 JSON 响应中删除 namespace 前缀?

java - 从相机捕获图像并将其显示在android的另一个 Activity 中

java - Spring MVC Controller 中重定向到父窗口

java - 由 : org. h2.jdbc.JdbcSQLException 引起:数据转换错误转换

spring-boot - Spring Boot、带有 azure 的 OAuth2 和另一个提供商(例如 google)

java - 我可以在 Maven 之外使用 Maven 存储库管理器吗?

java - Spring Kafka 与动态 @KafkaListener