Spring-Boot:如何设置JDBC池属性(如最大连接数)?

Spring-Boot是一个非常出色的工具,但是有关高级配置的文档很少。如何设置属性,例如数据库连接池的最大大小?

Spring-Boot支持tomcat-jdbcHikariCP并且Commons DBCP它们本身是否都以相同的方式配置?

回答:

事实证明,设置这些配置属性非常简单,但是官方文档更为通用,因此在专门搜索连接池配置信息时可能很难找到。

要为tomcat-jdbc设置最大池大小,请在.properties或.yml文件中设置以下属性:

spring.datasource.maxActive=5

如果愿意,还可以使用以下内容:

spring.datasource.max-active=5

你可以通过这种方式设置任何需要的连接池属性。这是所支持的属性的完整列表tomcat-jdbc。

为了更一般地理解它是如何工作的,你需要稍微深入一下Spring-Boot代码。

Spring-Boot像这样构造DataSource:

@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()函数。

至此,魔术开始了@ConfigurationProperties。此批注告诉Spring寻找带有前缀CONFIGURATION_PREFIX(即spring.datasource)的属性。对于以该前缀开头的每个属性,Spring都会尝试使用该属性在DataSource上调用setter。

Tomcat的数据源是的延伸DataSourceProxy,其具有方法setMaxActive()

这就是spring.datasource.maxActive=5正确应用你的方式!

那其他连接池呢

我还没有尝试过,但是如果你使用的是其他Spring-Boot支持的连接池(当前为HikariCP或Commons DBCP),则应该能够以相同的方式设置属性,但是你需要查看项目文档以了解可用的内容。

以上是 Spring-Boot:如何设置JDBC池属性(如最大连接数)? 的全部内容, 来源链接: utcz.com/qa/436154.html

回到顶部