Конфигурирование пользовательских свойств в автоматически сконфигурированном источнике данных DB2 - PullRequest
0 голосов
/ 29 января 2019

Я полагаюсь на Spring Boot для автоматической настройки источника данных DB2 с использованием стандартных свойств конфигурации (spring.datasource.*).

Дело в том, что мне нужно настроить пользовательское свойство конфигурации DB2 в источнике данных.Если бы я создал источник данных как бин вручную, я бы определил его с @Bean типа DB2SimpleDataSource и установил бы значение, вызывающее метод установки, предлагаемый этим классом:

DB2SimpleDataSource db2DS = new DB2SimpleDataSource();
db2DS.setClientDebugInfo("xxx");

Есть ли способпродолжать использовать автоконфигурацию и одновременно настраивать это свойство?

1 Ответ

0 голосов
/ 30 января 2019

Я решил, добавив BeanPostProcessor, например:

@Configuration
@ConditionalOnClass(name = Constants.DB2_PRESENCE_TOKEN_CLASS)
@AutoConfigureAfter(value = {
        DataSourceAutoConfiguration.class})
@Slf4j
public class Db2CustomPropertiesAutoConfiguration implements BeanPostProcessor {

    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        log.debug("bean {}", bean);
        if (bean instanceof DataSourceProxy && ((DataSource) bean).getDriverClassName().equals("com.ibm.db2.jcc.DB2Driver")) {
            ((DataSource) bean).getDbProperties().put("clientDebugInfo", "XXX")
        }
        return bean;
    }

    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...