作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我迁移到最新的 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
新配置
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
迁移到新配置后,我的应用程序仍然消耗 10 个连接,这是默认配置。
我缺少哪些附加配置?
最佳答案
根据the documentation ,默认情况下,Spring boot使用Tomcat JDBC。默认情况下,它也包含在 spring-boot-starter-jdbc 中,后者包含在 spring-boot-starter-data-jpa 中。
- We prefer the Tomcat pooling DataSource for its performance and concurrency, so if that is available we always choose it.
- Otherwise, if HikariCP is available we will use it.
- If neither the Tomcat pooling datasource nor HikariCP are available and if Commons DBCP is available we will use it, but we don’t recommend it in production.
- Lastly, if Commons DBCP2 is available we will use it.
这意味着您应该使用 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
或者,如果您更喜欢 DBCP,则可以通过定义 spring.datasource.type 属性并提供连接池实现的完全限定名称来实现。在这种情况下,您必须使用 maxTotal
,因为根据 the documentation of DBCP 不存在 maxActive
.
请记住将正确版本的 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
关于spring-boot_1.4.2数据源配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566361/
我是一名优秀的程序员,十分优秀!