不为DataSource bean调用BeanPostProcessor.postProcessAfterInitialization

时间:2018-10-11 10:06:43

标签: spring spring-boot shiro

我有Spring Boot应用程序。

我有bean impl。 BeanPostProcessor为我的DataSource bean创建代理。因此,在初始化Application时,将为每个bean调用BeanPostProcessor.postProcessAfterInitialization

public Object postProcessAfterInitialization(final Object bean, final String beanName) throws BeansException {
   if (bean instanceof DataSource) {
       .... create proxy here

在依赖于DataSource的另一个bean定义(org.apache.shiro.session.mgt.eis.SessionDAO bean)之前,它一直像魅力一样工作。现在,DataSource bean将不会通过postProcessAfterInitialization方法。

我的猜测是DataSourceBeanPostProcessor之前被初始化的问题。

我在@DependsOn("nameOfMyPostProcessorBean")定义中添加了DataSource注释,因此BeanPostProcessorDataSource之前创建。因此,现在BeanPostProcessor是在DataSource bean之前创建的。 (我通过在bean的定义中添加断点来验证这一点)。但是它仍然不起作用,BeanPostProcessor.postProcessAfterInitialization bean没有调用DataSource

感谢您的帮助或建议。

0 个答案:

没有答案