什么是正确的? dbcp/dbcp2/tomcat 验证查询
what is right? dbcp/dbcp2/tomcat validation-query
我需要在 Spring 引导时创建连接重新连接。许多示例显示如下:
spring.datasource.validationQuery=SELECT 1
但 Intellij IDE 看不到并显示:
spring.datasource.dbcp.validation-query=select 1
和
spring.datasource.dbcp2.validation-query=select 1
和
spring.datasource.tomcat.validation-query=select 1
什么是对的?
在 Spring 1.4 之前,所有连接池提供程序(Tomcat、Apache DBCP、Apache DBCP v2、Hikari、...)都使用相同的属性,例如:
spring.datasource.validationQuery=select 1
根据连接池供应商的不同,您可以使用不同的属性。不仅如此,其中一些属性并未用于配置 vendor-specific 属性,但也被 Spring 引导使用。所以他们相当 ambiguous.
从 1.4 开始,Spring 引导属性在 spring.datasource.*
内,而连接池属性在 spring.datasource.tomcat.*
或 spring.datasource.dbcp.*
或....
内
要回答您的问题,如果您使用的是 Spring boot 1.3 或更低版本,则正确答案是:
spring.datasource.validationQuery=select 1
如果您使用 Spring boot 1.4 或更高版本的默认 tomcat-jdbc 连接池,正确答案是:
spring.datasource.tomcat.validationQuery=select 1
您提供的其他选项仅在您使用 Spring boot 1.4 或更新版本并且覆盖默认连接池提供程序时才有效。
除此之外,您可以选择是否要使用驼峰式 (validationQuery
) 或 kebab-case (validation-query
),两者都可以在 [=38 的任何版本上正常工作=]启动。
我需要在 Spring 引导时创建连接重新连接。许多示例显示如下:
spring.datasource.validationQuery=SELECT 1
但 Intellij IDE 看不到并显示:
spring.datasource.dbcp.validation-query=select 1
和
spring.datasource.dbcp2.validation-query=select 1
和
spring.datasource.tomcat.validation-query=select 1
什么是对的?
在 Spring 1.4 之前,所有连接池提供程序(Tomcat、Apache DBCP、Apache DBCP v2、Hikari、...)都使用相同的属性,例如:
spring.datasource.validationQuery=select 1
根据连接池供应商的不同,您可以使用不同的属性。不仅如此,其中一些属性并未用于配置 vendor-specific 属性,但也被 Spring 引导使用。所以他们相当 ambiguous.
从 1.4 开始,Spring 引导属性在 spring.datasource.*
内,而连接池属性在 spring.datasource.tomcat.*
或 spring.datasource.dbcp.*
或....
要回答您的问题,如果您使用的是 Spring boot 1.3 或更低版本,则正确答案是:
spring.datasource.validationQuery=select 1
如果您使用 Spring boot 1.4 或更高版本的默认 tomcat-jdbc 连接池,正确答案是:
spring.datasource.tomcat.validationQuery=select 1
您提供的其他选项仅在您使用 Spring boot 1.4 或更新版本并且覆盖默认连接池提供程序时才有效。
除此之外,您可以选择是否要使用驼峰式 (validationQuery
) 或 kebab-case (validation-query
),两者都可以在 [=38 的任何版本上正常工作=]启动。