Оказывается, установить эти свойства конфигурации довольно просто, но официальная документация носит более общий характер, поэтому ее может быть трудно найти при поиске конкретной информации о конфигурации пула соединений.
Чтобы установить максимальный размер пула для tomcat-jdbc, установите это свойство в файле .properties или .yml:
spring.datasource.maxActive=5
Вы также можете использовать следующее, если хотите:
spring.datasource.max-active=5
Таким образом вы можете установить любое свойство пула соединений. Вот полный список свойств, поддерживаемыхtomcat-jdbc
.
Чтобы понять, как это работает в целом, вам нужно немного покопаться в коде Spring-Boot.
Spring-Boot создает DataSource следующим образом ( см. Здесь , строка 102):
@ConfigurationProperties(prefix = DataSourceAutoConfiguration.CONFIGURATION_PREFIX)
@Bean
public DataSource dataSource() {
DataSourceBuilder factory = DataSourceBuilder
.create(this.properties.getClassLoader())
.driverClassName(this.properties.getDriverClassName())
.url(this.properties.getUrl())
.username(this.properties.getUsername())
.password(this.properties.getPassword());
return factory.build();
}
DataSourceBuilder отвечает за определение того, какую библиотеку объединения использовать, путем проверки каждого из ряда известных классов в пути к классам. Затем он создает DataSource и возвращает его dataSource()
функции.
На этом этапе начинается использование магии @ConfigurationProperties
. Эта аннотация сообщает Spring искать свойства с префиксом CONFIGURATION_PREFIX
(который есть spring.datasource
). Для каждого свойства, которое начинается с этого префикса, Spring попытается вызвать установщик в DataSource с этим свойством.
Tomcat DataSource - это расширение DataSourceProxy , в котором есть метод setMaxActive()
.
И вот как spring.datasource.maxActive=5
правильно применяется ваше !
А как насчет других пулов подключений
Я не пробовал, но если вы используете один из других пулов соединений, поддерживаемых Spring-Boot (в настоящее время HikariCP или Commons DBCP), вы сможете установить свойства таким же образом, но вам нужно будет посмотреть на проект документация, чтобы знать, что доступно.