BeanPostProcessor.postProcessAfterInitialization не вызывается для компонента DataSource - PullRequest
0 голосов
/ 11 октября 2018

У меня есть приложение весенней загрузки.

У меня есть бинBeanPostProcessor для создания прокси для моего DataSource бина.Поэтому, когда приложение инициализируется, для каждого компонента вызывается BeanPostProcessor.postProcessAfterInitialization:

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

Он работал как брелок, пока не было добавлено другое определение компонента (org.apache.shiro.session.mgt.eis.SessionDAO bean), который зависит от DataSource.Теперь компонент DataSource не будет проходить метод postProcessAfterInitialization.

Я предполагаю, что проблема в том, что DataSource инициализируется до BeanPostProcessor.

Я добавил @DependsOn("nameOfMyPostProcessorBean") аннотацию копределение DataSource, поэтому BeanPostProcessor создается до DataSource.Так что теперь BeanPostProcessor создается перед компонентом DataSource.(Я проверил это, добавив точки останова в определения бина).Но он все еще не работает, и BeanPostProcessor.postProcessAfterInitialization не вызывается для DataSource bean-компонента.

Спасибо за любую помощь или предложения.

...