Возможно, проще всего было бы использовать плагин jdbc-pool . Поскольку параметры конфигурации для этого пула намеренно очень похожи на Commons DBCP (они задокументированы здесь ), вы можете использовать плагин для определения зависимости jar и управления переключением класса для вас. Плагин не обновлялся в течение года, поэтому он немного устарел (плагин использует версию 1.0.9.0, но самая последняя версия - 1.0.9.3 ), поэтому вы можете определить зависимость плагина, исключая банку, и добавьте один для более новой версии. Он находится в репозитории ebr
, поэтому вам необходимо добавить его в свой BuildConfig.groovy (информацию о том, как он это сделал, см. В версии плагина ).
Здесь есть примечания по конфигурации для пула здесь и серия постов автора здесь .
Если вы хотите настроить это без использования плагина, добавьте репозиторий ebr
и зависимость jar к BuildConfig.groovy
:
repositories {
inherits true
...
ebr()
}
dependencies {
runtime('org.apache.tomcat:com.springsource.org.apache.tomcat.jdbc:1.0.9.3') {
transitive = false
}
}
и создайте переопределение для компонента dataSource
в resources.groovy
:
import org.apache.tomcat.jdbc.pool.DataSource
beans = {
dataSource(DataSource) {
// mandatory
driverClassName = '${dataSource.driverClassName}'
username = '${dataSource.username}'
password = '${dataSource.password}'
url = '${dataSource.url}'
// optional
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
}
Удобно использовать строки в одинарных кавычках с ${}
заполнителями, чтобы воспользоваться функциональностью заполнителей свойств Spring и сохранять вещи СУХИМЫМИ, поскольку вы уже установили драйвер и подключили информацию в DataSource.groovy
.