gpt4 book ai didi

spring-boot_1.4.2数据源配置

转载 作者:行者123 更新时间:2023-12-01 17:43:27 25 4
gpt4 key购买 nike

最近我迁移到最新的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com