Источник данных Spring Boot не отправляется в BeanPostProcessor - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь создать прокси для моего источника данных, но следующее никогда не вызывается с объектом источника данных bean, и экземпляр объекта DataSource всегда false :

@Component
public class DatasourceProxyBeanPostProcessor implements 
BeanPostProcessor {

    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) {
        if (bean instanceof DataSource) {
            final ProxyFactory factory = new ProxyFactory(bean);
            factory.setProxyTargetClass(true);
            factory.addAdvice(new ProxyDataSourceInterceptor((DataSource) bean));
            return factory.getProxy();
        }
        return bean;
    }

    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) {
        return bean;
    }
}

У меня есть следующий конфиг для postgres:

spring:
  datasource:
    username: ***
    password: ***
    url: jdbc:postgresql://localhost:5432/postgres?currentSchema=myschema

Spring Boot: v1.5.x

Любая идея, почему я не попадаю внутрь блока экземпляр объекта DataSource ?

1 Ответ

0 голосов
/ 07 сентября 2018

Вы видели DelegatingDataSource?

Возможно, мы можем решить вашу проблему с прокси, но этот класс, скорее всего, предназначен для решения вашей корневой проблемы:

Этот класс предназначен для подклассов, только с переопределением подклассов. те методы (такие как getConnection()), которые не должны просто делегировать целевому источнику данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...