有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

具有默认连接池的java Spring引导

我正在使用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. ]

你能给我一些关于这个的信息吗

我需要手动配置(添加依赖项)连接池吗


共 (2) 个答案

  1. # 1 楼答案

    Hikari是Spring Boot 2的默认数据源实现。这意味着我们不需要在pom中添加显式依赖项。xml。默认情况下,spring boot starter jdbc和spring boot starter数据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.
    
  2. # 2 楼答案

    根据Spring Boot文档:

    支持的连接池:-

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

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

    如果使用spring boot starter jdbc或spring boot starter数据jpa“starters”,则会自动获得对HikariCP的依赖关系

    Spring documentation

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