事实证明,设置这些配置属性非常简单,但是官方文档更为通用,因此在专门搜索连接池配置信息时可能很难找到。
要为tomcat-jdbc设置最大池大小,请在.properties或.yml文件中设置以下属性:
spring.datasource.maxActive=5
如果愿意,还可以使用以下内容:
spring.datasource.max-active=5
您可以通过这种方式设置任何连接池属性。 这是spring.datasource.maxActive=5支持的属性的完整列表。
为了更一般地理解它是如何工作的,您需要稍微深入一下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并将其返回给spring.datasource.maxActive=5函数。
此时,魔术开始使用spring.datasource.maxActive=5。此注释告诉Spring查找带有前缀CONFIGURATION_PREFIX(即spring.datasource)的属性。 对于以该前缀开头的每个属性,Spring都会尝试使用该属性在DataSource上调用setter。
Tomcat DataSource是DataSourceProxy的扩展,具有方法spring.datasource.maxActive=5。
这就是正确应用spring.datasource.maxActive=5的方式!
那其他连接池呢
我没有尝试过,但是如果您使用的是其他Spring-Boot支持的连接池(当前为HikariCP或Commons DBCP),则应该能够以相同的方式设置属性,但是您需要查看项目 文档以了解可用内容。