Spring-Boot是一个非常出色的工具,但是涉及到更高级的配置时,文档很少。如何设置属性,例如数据库连接池的最大大小?
Spring-Boot支持tomcat-jdbc
,HikariCP
并且Commons DBCP
它们本身是否都以相同的方式配置?
事实证明,设置这些配置属性非常简单,但是官方文档更为通用,因此在专门搜索连接池配置信息时可能很难找到。
要设置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上调用setter。
Tomcat的数据源是的延伸DataSourceProxy,其具有方法setMaxActive()
。
这就是spring.datasource.maxActive=5
正确应用您的方式!
我还没有尝试过,但是如果您使用的是其他Spring-Boot支持的连接池(当前为HikariCP或Commons
DBCP),则应该能够以相同的方式设置属性,但是您需要查看项目文档以了解可用的内容。
spring-引导是一个非常棒的工具,但是当涉及到更高级的配置时,文档就有点稀疏了。如何设置数据库连接池的最大大小等属性? spring-boot支持、和它们都是以相同的方式配置的吗?
我在Spring JDBC中使用Spring Boot 1.5.4。 使用Spring JDBC的Spring Boot微服务在尝试执行HTTP PUT时(在一群用户尝试执行HTTP PUT后)会出现以下问题,该问题会逐渐进入Spring JDBC调用: pom.xml: 我猜我需要设置一个JDBC连接池... 在我的application.properties设置中,(我有两个不同的数据库——一
在OkHttp中,我找不到设置硬最大连接池大小的方法。从留档https://square.github.io/okhttp/3.x/okhttp/okhttp3/ConnectionPool.html很明显,您可以设置最大空闲连接,但不能设置整体最大值。这意味着在高负载下,它可以增长超过任何限制。 有没有办法最大化池?如果没有,为什么没有?
我有一个问题,在通过tomcat web应用程序应用户请求重置MySQL数据库后,我会收到tomcat异常。到目前为止,我已尝试将其分解为设置、问题和我的分析,以帮助任何试图阅读本文的人。 重置基本上包括从java代码调用bash脚本以: 删除根mysql用户密码 加载数据库的旧版本 在上面运行一些脚本 恢复所有密码 这是一个用户启动的过程,通常将数据库恢复到以前的状态,但它也用于从另一个系统导入
我创建了一个Spring启动应用程序,使用Spring启动启动数据elasticsearch连接到elasticsearch。我想配置此应用程序设置连池。如何配置application.properties以支持它?
根据这个留档: 29.1.1嵌入式数据库支持 Spring Boot可以自动配置嵌入式H2、HSQL和Derby数据库。您不需要提供任何连接URL,只需包含要使用的嵌入式数据库的构建依赖项。 和 29.1.2与生产数据库的连接 生产数据库连接也可以使用池化DataSource自动配置。 数据源配置由spring中的外部配置属性控制。数据源*。例如,您可以在应用程序中声明以下部分。特性: [提示]您