SpringBoot2.0以上默认数据库连接池-hikari

参考链接:

1、SpringBoot官网数据源使用

https://docs.spring.io/spring-boot/docs/current/reference/html/data.html#data.sql

2、hikari git说明

https://github.com/brettwooldridge/HikariCP/tree/HikariCP-3.4.2

3、SpringBoot源码git地址

GitHub - spring-projects/spring-boot: Spring Boot

公司项目线上问题解决记录

一直提示如下报错:

Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.

在网上查找之后说法不一,于是花了一点时间去官网看了一下,而且也去看了一下源码。发现其实SpringBoot针对hikari及其他连接池的配置是这样的

使用各自的前缀(spring.datasource.hikari.*spring.datasource.tomcat.*spring.datasource.dbcp2.*spring.datasource.oracleucp.*

以hikari为例:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: 
    username: 
    password: 
    hikari:
      #客户端等待连接池连接的最大毫秒数
      connection-timeout: 60000
      #允许连接在连接池中空闲的最长时间(以毫秒为单位)
      idle-timeout: 60000
      #池中连接关闭后的最长生命周期
      max-lifetime: 28750000
      #此属性控制允许池达到的最大大小,包括空闲和使用中的连接
      maximum-pool-size: 20

详细的设置请参考hikari git说明。

注意一点

yaml配置配置和hikari里有一点区别,hikari因为是变量所以用的是驼峰命名法,而SpringBoot的yaml配置的是用的-区分法,如connectionTimeout=connection-timeout

你可能感兴趣的:(SpringBoot,数据库,spring,boot,spring)