springboot配置HikariDataSource連接池的兩種方法
在 Spring Boot 中配置 HikariDataSource 非常簡單,可以通過 application.properties 或 application.yml 文件進(jìn)行配置。以下是常用的配置項(xiàng)及說明:
1. application.yml 配置方式
spring:
datasource:
# 數(shù)據(jù)庫連接信息
url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
# Hikari 連接池配置
hikari:
# 連接池名稱(顯示在日志和監(jiān)控中)
pool-name: MyHikariPool
# 最大連接數(shù)(默認(rèn)10,建議根據(jù)并發(fā)量調(diào)整)
maximum-pool-size: 20
# 最小空閑連接數(shù)(默認(rèn)等于maximum-pool-size,建議設(shè)置為5-10)
minimum-idle: 5
# 連接超時(shí)時(shí)間(毫秒,默認(rèn)30000ms=30秒)
connection-timeout: 30000
# 連接最大存活時(shí)間(毫秒,默認(rèn)1800000ms=30分鐘,建議小于數(shù)據(jù)庫wait_timeout)
max-lifetime: 1800000
# 空閑連接超時(shí)時(shí)間(毫秒,默認(rèn)600000ms=10分鐘,設(shè)置為0表示永不超時(shí))
idle-timeout: 600000
# 測試連接是否有效(建議配置,避免使用失效連接)
connection-test-query: SELECT 1
2. application.properties 配置方式
# 數(shù)據(jù)庫連接信息 spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Hikari 連接池配置 spring.datasource.hikari.pool-name=MyHikariPool spring.datasource.hikari.maximum-pool-size=20 spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.connection-timeout=30000 spring.datasource.hikari.max-lifetime=1800000 spring.datasource.hikari.idle-timeout=600000 spring.datasource.hikari.connection-test-query=SELECT 1
關(guān)鍵配置項(xiàng)說明
| 配置項(xiàng) | 作用 | 建議值 |
|---|---|---|
| maximum-pool-size | 連接池允許的最大連接數(shù) | 5-20(根據(jù)并發(fā)量調(diào)整,不宜過大,避免數(shù)據(jù)庫壓力) |
| minimum-idle | 維持的最小空閑連接數(shù) | 5-10(避免頻繁創(chuàng)建連接) |
| connection-timeout | 獲取連接的超時(shí)時(shí)間 | 30000ms(30 秒,超過則拋連接超時(shí)異常) |
| max-lifetime | 連接的最大存活時(shí)間 | 小于數(shù)據(jù)庫的 wait_timeout(MySQL 默認(rèn) 8 小時(shí),建議 30 分鐘) |
| idle-timeout | 空閑連接的超時(shí)時(shí)間 | 10 分鐘(釋放長期空閑的連接,避免資源浪費(fèi)) |
| connection-test-query | 測試連接有效性的 SQL | SELECT 1(MySQL)、SELECT 1 FROM DUAL(Oracle) |
自定義配置類(可選)
如果需要通過代碼自定義 HikariDataSource,可以創(chuàng)建配置類:
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class HikariConfig {
@Bean
public DataSource dataSource() {
HikariConfig config = new HikariConfig();
// 數(shù)據(jù)庫連接信息
config.setJdbcUrl("jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8");
config.setUsername("root");
config.setPassword("your_password");
config.setDriverClassName("com.mysql.cj.jdbc.Driver");
// 連接池配置
config.setPoolName("CustomHikariPool");
config.setMaximumPoolSize(20);
config.setMinimumIdle(5);
config.setConnectionTimeout(30000);
config.setMaxLifetime(1800000);
config.setIdleTimeout(600000);
config.setConnectionTestQuery("SELECT 1");
return new HikariDataSource(config);
}
}
注意事項(xiàng)
- Spring Boot 2.x 及以上默認(rèn)使用 HikariCP,無需額外引入依賴(已包含在 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 中)。
- 配置時(shí)需確保 max-lifetime 小于數(shù)據(jù)庫的 wait_timeout(避免數(shù)據(jù)庫主動(dòng)關(guān)閉連接后,連接池仍持有無效連接)。
- 生產(chǎn)環(huán)境建議配置 connection-test-query,確保獲取的連接是有效的。
到此這篇關(guān)于springboot配置HikariDataSource連接池的兩種方法的文章就介紹到這了,更多相關(guān)springboot配置HikariDataSource連接池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java獲取Cookie里的指定值的實(shí)現(xiàn)方法
在Java中,我們經(jīng)常需要從HTTP請求中獲取Cookie,并從中提取特定的值,下面我們將介紹如何通過Java代碼獲取Cookie中的指定值,文章通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
Java實(shí)現(xiàn)大文件的分片上傳與下載(springboot+vue3)
這篇文章主要為大家詳細(xì)介紹了java基于springboot+vue3如何大文件的分片上傳與下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-06-06
MyBatis實(shí)現(xiàn)if-else的示例代碼
MyBatis實(shí)現(xiàn)if-else功能可以通過和標(biāo)簽來完成,這些標(biāo)簽提供了一種類似于Java中switch語句的方式來處理多分支條件邏輯,下面就來具體了解一下2025-11-11
使用spring整合Quartz實(shí)現(xiàn)—定時(shí)器功能
這篇文章主要介紹了使用spring整合Quartz實(shí)現(xiàn)—定時(shí)器功能,不基于特定的基類的方法,需要的朋友可以參考下2018-04-04
Springboot 實(shí)現(xiàn)數(shù)據(jù)庫備份還原的方法
這篇文章主要介紹了Springboot 實(shí)現(xiàn)數(shù)據(jù)庫備份還原的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類擴(kuò)展,socket
這篇文章主要介紹了Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類擴(kuò)展,socket的相關(guān)資料,需要的朋友可以參考下2017-05-05

