我的春季应用程序中有几个已配置的bean。所有的豆子都能正常工作并发挥作用。

问题是,我实现了一个BeanPostProcessor,并注意到某些bean并未调用它(postProcessAfterInitializationpostProcessBeforeInitialization都没有)。可能是什么原因 ?

最佳答案

我不知道它是否相关,但是参考手册说:


  BeanPostProcessors和AOP自动代理
  
  实现BeanPostProcessor接口的类是特殊的,
  因此容器对它们的处理方式有所不同。所有
  BeanPostProcessors及其直接引用的bean将是
  在启动时实例化,作为特殊启动阶段的一部分
  ApplicationContext,那么所有这些BeanPostProcessor都将是
  以排序方式注册-并应用于所有其他bean。
  由于AOP自动代理是作为BeanPostProcessor本身实现的,
  没有BeanPostProcessor或直接引用的Bean都符合条件
  自动代理(因此不会“编织”各个方面。
  
  对于任何此类bean,您应该看到一条信息日志消息:“ Bean'foo'是
  不适合所有BeanPostProcessor处理(对于
  例如:不符合自动代理资格”。


因此,也许您的豆子正在被代理。

10-02 22:55