BeanPostProcessor是否覆盖初始化bean通知?

时间:2015-06-12 21:54:24

标签: spring

我正在试验Spring的BeanPostProcessor,BeanFactoryPostProcessor,Initializing bean,destroy bean。

我对这些通知概念感到困惑。

我创建了一个实现Initi * Bean,Disposable bean的简单bean。并且还注册了样本后处理器,factoryPostprocessor。并在所有接口方法中添加了sysout。

我也创建了AbstractApplicationContext并注册了关闭钩子。

当我运行应用程序时,我看到BeanFactoryProcessor方法打印,AfterProperties方法,然后调用destroy方法。我没看到"初始化bean"称为..

BeanPostProcessor是否会覆盖初始化bean通知?

请解释一下。

1 个答案:

答案 0 :(得分:1)

您在null方法中都返回了BeanPostProcessor。这导致Spring认为您不希望对该bean进行任何进一步处理,包括通过InitializingBean进行初始化。

只需返回您收到的原始bean(在两种方法中)

@Override
public Object postProcessAfterInitialization(Object bean, String arg1) throws BeansException {
    System.out.println("postProcessAfterInitialization");
    return bean;
}

因为您不想处理它。