Resulta que establecer estas propiedades de configuración es bastante sencillo, pero la documentación oficial es más general, por lo que puede ser difícil de encontrar cuando se busca específicamente información de configuración del grupo de conexiones.
Para establecer el tamaño máximo de grupo para tomcat-jdbc, establezca esta propiedad en su archivo .properties o .yml:
spring.datasource.maxActive=5
También puede utilizar lo siguiente si lo prefiere:
spring.datasource.max-active=5
Puede establecer cualquier propiedad de grupo de conexiones que desee de esta manera. Aquí hay una lista completa de propiedades admitidas portomcat-jdbc
.
Para comprender cómo funciona esto de manera más general, debe profundizar un poco en el código Spring-Boot.
Spring-Boot construye el DataSource de esta manera ( ver aquí , línea 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();
}
El DataSourceBuilder es responsable de averiguar qué biblioteca de agrupación usar, verificando cada una de una serie de clases conocidas en la ruta de clases. Luego construye el DataSource y lo devuelve a la dataSource()
función.
En este punto, la magia comienza a usarse @ConfigurationProperties
. Esta anotación le dice a Spring que busque propiedades con prefijo CONFIGURATION_PREFIX
(que es spring.datasource
). Para cada propiedad que comience con ese prefijo, Spring intentará llamar al establecedor en el DataSource con esa propiedad.
Tomcat DataSource es una extensión de DataSourceProxy , que tiene el método setMaxActive()
.
¡Y así es como spring.datasource.maxActive=5
se aplica correctamente!
¿Qué pasa con otros grupos de conexiones?
No lo he intentado, pero si está utilizando uno de los otros grupos de conexiones compatibles con Spring-Boot (actualmente HikariCP o Commons DBCP), debería poder configurar las propiedades de la misma manera, pero deberá mirar el proyecto documentación para saber qué hay disponible.