https://www.cnblogs.com/wat1r/p/13710562.html
## 資料庫配置
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username = root
spring.datasource.password = root
## Hikari 連線池配置 ------ 詳細配置請訪問:https://github.com/brettwooldridge/HikariCP
## 最小空閒連線數量
spring.datasource.hikari.minimum-idle=5
## 空閒連線存活最大時間,預設600000(10分鐘)
spring.datasource.hikari.idle-timeout=180000
## 連線池最大連線數,預設是10
spring.datasource.hikari.maximum-pool-size=10
## 此屬性控制從池返回的連線的預設自動提交行為,預設值:true
spring.datasource.hikari.auto-commit=true
## 連線池名稱
spring.datasource.hikari.pool-name=MyHikariCP
## 此屬性控制池中連線的最長生命週期,值0表示無限生命週期,預設1800000即30分鐘
spring.datasource.hikari.max-lifetime=1800000
## 資料庫連線超時時間,預設30秒,即30000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.pool-name=hikariXXXXDbPool
name | 描述 | 構造器預設值 | 預設配置validate之後的值 | validate重置 |
---|---|---|---|---|
autoCommit | 自動提交從池中返回的連線 | true | true | - |
connectionTimeout | 等待來自池的連線的最大毫秒數 | SECONDS.toMillis(30) = 30000 | 30000 | 如果小於250毫秒,則被重置回30秒 |
idleTimeout | 連線允許在池中閒置的最長時間 | MINUTES.toMillis(10) = 600000 | 600000 | 如果idleTimeout+1秒>maxLifetime 且 maxLifetime>0,則會被重置為0(代表永遠不會退出);如果idleTimeout!=0且小於10秒,則會被重置為10秒 |
maxLifetime | 池中連線最長生命週期 | MINUTES.toMillis(30) = 1800000 | 1800000 | 如果不等於0且小於30秒則會被重置回30分鐘 |
connectionTestQuery | 如果您的驅動程式支援JDBC4,我們強烈建議您不要設定此屬性 | null | null | - |
minimumIdle | 池中維護的最小空閒連線數 | -1 | 10 | minIdle<0或者minIdle>maxPoolSize,則被重置為maxPoolSize |
maximumPoolSize | 池中最大連線數,包括閒置和使用中的連線 | -1 | 10 | 如果maxPoolSize小於1,則會被重置。當minIdle<=0被重置為DEFAULT_POOL_SIZE則為10;如果minIdle>0則重置為minIdle的值 |
metricRegistry | 該屬性允許您指定一個 Codahale / Dropwizard MetricRegistry 的例項,供池使用以記錄各種指標 |
null | null | - |
healthCheckRegistry | 該屬性允許您指定池使用的Codahale / Dropwizard HealthCheckRegistry的例項來報告當前健康資訊 | null | null | - |
poolName | 連線池的使用者定義名稱,主要出現在日誌記錄和JMX管理控制檯中以識別池和池配置 | null | HikariPool-1 | - |
initializationFailTimeout | 如果池無法成功初始化連線,則此屬性控制池是否將 fail fast |
1 | 1 | - |
isolateInternalQueries | 是否在其自己的事務中隔離內部池查詢,例如連線活動測試 | false | false | - |
allowPoolSuspension | 控制池是否可以透過JMX暫停和恢復 | false | false | - |
readOnly | 從池中獲取的連線是否預設處於只讀模式 | false | false | - |
registerMbeans | 是否註冊JMX管理Bean(MBeans ) |
false | false | - |
catalog | 為支援 catalog 概念的資料庫設定預設 catalog |
driver default | null | - |
connectionInitSql | 該屬性設定一個SQL語句,在將每個新連線建立後,將其新增到池中之前執行該語句。 | null | null | - |
driverClassName | HikariCP將嘗試透過僅基於jdbcUrl的DriverManager解析驅動程式,但對於一些較舊的驅動程式,還必須指定driverClassName | null | null | - |
transactionIsolation | 控制從池返回的連線的預設事務隔離級別 | null | null | - |
validationTimeout | 連線將被測試活動的最大時間量 | SECONDS.toMillis(5) = 5000 | 5000 | 如果小於250毫秒,則會被重置回5秒 |
leakDetectionThreshold | 記錄訊息之前連線可能離開池的時間量,表示可能的連線洩漏 | 0 | 0 | 如果大於0且不是單元測試,則進一步判斷:(leakDetectionThreshold < SECONDS.toMillis(2) or (leakDetectionThreshold > maxLifetime && maxLifetime > 0),會被重置為0 . 即如果要生效則必須>0,而且不能小於2秒,而且當maxLifetime > 0時不能大於maxLifetime |
dataSource | 這個屬性允許你直接設定資料來源的例項被池包裝,而不是讓HikariCP透過反射來構造它 | null | null | - |
schema | 該屬性為支援模式概念的資料庫設定預設模式 | driver default | null | - |
threadFactory | 此屬性允許您設定將用於建立池使用的所有執行緒的java.util.concurrent.ThreadFactory的例項。 | null | null | - |
scheduledExecutor | 此屬性允許您設定將用於各種內部計劃任務的java.util.concurrent.ScheduledExecutorService例項 | null | null | - |
Reference
-
https://github.com/brettwooldridge/HikariCP
-
https://blog.csdn.net/long690276759/article/details/82259550
-
https://www.cnblogs.com/yangzhilong/p/11726188.html