Spring Boot 使用默认连接池

Saf*_*ari 12 java hibernate jpa connection-pooling spring-boot

我正在使用 SpringBoot (v2.3.0.RELEASE)、JPA 和 Hibernate(带有 MySQL 数据库)。总的来说,我需要努力提高表现。

我并不完全清楚,在默认配置中是否已经存在数据库连接池。

我没有在我的 pom 中添加有关连接池的任何特定依赖项,但是当我尝试运行我的服务时,我读到:

2021-07-01 13:53:04.065  INFO  HikariDataSource-getConnection():110 - [ HikariPool-1 - Starting... ]
2021-07-01 13:53:04.499  INFO  HikariDataSource-getConnection():123 - [ HikariPool-1 - Start completed. ]
Run Code Online (Sandbox Code Playgroud)

你能给我一些关于这方面的信息吗?

我是否需要手动配置(也添加依赖项)连接池?

Tri*_*riS 23

Hikari 是 Spring Boot 2 的默认 DataSource 实现。这意味着我们不需要在 pom.xml 中添加显式依赖项。spring-boot-starter-jdbc 和 spring-boot-starter-data-jpa 默认解析它。总而言之,使用 Spring Boot 2 不需要执行其他步骤。
文档链接:Spring Documentation for Connection pools

虽然你修改了HikariCP的默认属性

spring.datasource.hikari.connection-timeout = 20000 #maximum number of milliseconds that a client will wait for a connection

spring.datasource.hikari.minimum-idle= 10 #minimum number of idle connections maintained by HikariCP in a connection pool

spring.datasource.hikari.maximum-pool-size= 10 #maximum pool size

spring.datasource.hikari.idle-timeout=10000 #maximum idle time for connection

spring.datasource.hikari.max-lifetime= 1000 # maximum lifetime in milliseconds of a connection in the pool after it is closed.

spring.datasource.hikari.auto-commit =true #default auto-commit behavior.
Run Code Online (Sandbox Code Playgroud)


Bha*_*tel 6

根据 Spring Boot 文档:

\n

支持的连接池:-

\n

Spring Boot 使用以下算法来选择特定的实现:

\n
    \n
  1. 我们更喜欢 HikariCP 的性能和并发性。如果 HikariCP 可用,我们总是选择它。
  2. \n
  3. 否则,如果 Tomcat 池数据源可用,我们就使用它。
  4. \n
  5. 否则,如果 Commons DBCP2 可用,我们将使用它。
  6. \n
  7. 如果 HikariCP、Tomcat 和 DBCP2 都不可用,而 Oracle UCP 可用,则我们使用它。
  8. \n
\n

如果您使用 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa \xe2\x80\x9cstarters\xe2\x80\x9d,则会自动获得对 HikariCP 的依赖关系。

\n

Spring文档

\n

查看 HikariCP: https: //github.com/brettwooldridge/HikariCP

\n