首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DB2自动配置的数据源中配置自定义属性

在DB2自动配置的数据源中配置自定义属性
EN

Stack Overflow用户
提问于 2019-01-30 01:02:11
回答 1查看 140关注 0票数 0

我依靠Spring Boot使用标准配置属性(spring.datasource.*)自动配置DB2数据源。

重点是我需要在数据源中设置一个自定义的DB2配置属性。如果我手动将数据源创建为bean,我将使用DB2SimpleDataSource类型的@Bean来定义它,并调用该类提供的setter方法来设置值:

代码语言:javascript
复制
DB2SimpleDataSource db2DS = new DB2SimpleDataSource();
db2DS.setClientDebugInfo("xxx");

有没有办法继续使用自动配置,同时能够配置该属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-30 21:28:51

我解决了这个问题,添加了一个这样的BeanPostProcessor

代码语言:javascript
复制
@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;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54426112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档