gpt4 book ai didi

java - 如何扩展Spring Boot的DataSourceAutoConfiguration

转载 作者:行者123 更新时间:2023-12-01 18:33:06 27 4
gpt4 key购买 nike

我希望能够利用 Spring Boot 数据源自动配置。但它并不支持我正在使用的所有功能,尤其是 logValidationErrors

spring:
datasource:
driverClassName: oracle.jdbc.OracleDriver
url: jdbc:jtds:sqlserver://111.11.11.11/DataBaseName
username: someuser
password: somepass
testOnBorrow: true
testWhileIdle: true
validationQuery: select /* validationQuery */ 1 from dual
minEvictableIdleTimeMillis: 1000
validationInterval: 30000

当前未使用这些:

    logValidationErrors: true
maxAge: 1800000 # //30 Minute idle age
removeAbondoned: true

我可以获取创建的 DataSource bean 并手动设置这些值吗?或者有更好的方法来扩展或包装自动配置吗?

请参阅此处了解有关 logValidationErrors 等的更多信息:https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html

最佳答案

我用 BeanPostProcessor 解决了这个问题,类似于 Dave Syer 的建议:

@Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof DataSource) {
DataSource ds = (DataSource) bean;
ds.setLogValidationErrors(true);
ds.setRemoveAbandoned(true);
ds.setMaxAge(1800000);
}
return bean;
}

我也可能会提交 PR 来将属性添加到 Spring Boot 本身。

关于java - 如何扩展Spring Boot的DataSourceAutoConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23256685/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com