我的 Spring 应用程序中有几个已配置的 bean。所有的豆子都按照它应该的方式工作并完成他们的工作。
问题是,我实现了 aBeanPostProcessor
并注意到它没有被某些 bean 调用,(也postProcessAfterInitialization
没有postProcessBeforeInitialization
)。可能是什么原因 ?
我不知道它是否相关,但参考手册说:
BeanPostProcessors 和 AOP 自动代理
实现 BeanPostProcessor 接口的类是特殊的,因此容器对它们的处理方式不同。所有 BeanPostProcessor 及其直接引用的 bean 将在启动时实例化,作为 ApplicationContext 特殊启动阶段的一部分,然后所有这些 BeanPostProcessor 将以排序方式注册 - 并应用于所有其他 bean。由于 AOP 自动代理是作为 BeanPostProcessor 本身实现的,因此没有 BeanPostProcessor 或直接引用的 bean 有资格进行自动代理(因此不会将方面“编织”到其中。
对于任何此类 bean,您应该看到一条信息日志消息:“Bean 'foo' 不符合所有 BeanPostProcessors 的处理条件(例如:不符合自动代理条件)”。
所以,也许你的 bean 正在被代理。