Sou*_*ain 2 spring spring-boot
最近我迁移到最新的spring-boot版本(1.4.2).我观察到一些旧的属性更受支持.
旧配置
spring.datasource.max-active=1
spring.datasource.validation-query=/* ping */ SELECT 1
spring.datasource.test-on-borrow=true
spring.datasource.initial-size=1
Run Code Online (Sandbox Code Playgroud)
新配置
spring.datasource.dbcp.max-active=1
spring.datasource.dbcp.validation-query=/* ping */ SELECT 1
spring.datasource.dbcp.test-on-borrow=true
spring.datasource.dbcp.initial-size=1
Run Code Online (Sandbox Code Playgroud)
迁移到新配置后,我的应用程序仍在使用10连接,这是默认配置.
我错过了哪些附加配置?
根据文档,默认情况下,Spring引导使用Tomcat JDBC.它也默认包含在spring-boot-starter-jdbc中,它包含在spring-boot-starter-data-jpa中.
- 我们更喜欢将Tomcat池化DataSource用于其性能和并发性,因此如果可用,我们总是选择它.
- 否则,如果HikariCP可用,我们将使用它.
- 如果Tomcat池数据源和HikariCP都不可用,并且Commons DBCP可用,我们将使用它,但我们不建议在生产中使用它.
- 最后,如果Commons DBCP2可用,我们将使用它.
这意味着您应该使用spring.datasource.tomcat.*属性,例如:
spring.datasource.tomcat.max-active=1
spring.datasource.tomcat.validation-query=/* ping */ SELECT 1
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.initial-size=1
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢DBCP,则可以通过定义spring.datasource.type属性并提供连接池实现的完全限定名称来实现.在这种情况下,您将不得不使用maxTotal,因为maxActive根据DBCP的文档不存在.
请记住,将正确版本的DBCP添加到类路径中.如果您要添加1.x,则可以使用spring.datasource.dbcp.*属性(如您使用的那样),但是,如果您使用的是2.x,则应使用以下spring.datasource.dbcp2.*属性:
# Commons DBCP 1.x
spring.datasource.dbcp.max-total=1
spring.datasource.dbcp.validation-query=/* ping */ SELECT 1
spring.datasource.dbcp.test-on-borrow=true
spring.datasource.dbcp.initial-size=1
spring.datasource.type=org.apache.commons.dbcp.BasicDataSource # To override the default classpath lookup behaviour
# Commons DBCP 2.x
spring.datasource.dbcp2.max-total=1
spring.datasource.dbcp2.validation-query=/* ping */ SELECT 1
spring.datasource.dbcp2.test-on-borrow=true
spring.datasource.dbcp2.initial-size=1
spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource # To override the default classpath lookup behaviour
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3217 次 |
| 最近记录: |