最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Boot?快速使用?HikariCP?連接池配置詳解

 更新時間:2023年06月05日 14:48:32   作者:愛路寶7A  
Spring Boot 2.x 將其作為默認(rèn)的連接池組件,項目中添加 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 模塊后,HikariCP 依賴會被自動引入,這篇文章主要介紹了Spring?Boot使用HikariCP連接池配置詳解,需要的朋友可以參考下

Spring Boot 使用 HikariCP 連接池配置詳解

HikariCP 是一個高性能的 JDBC 連接池組件。

Spring Boot 2.x 將其作為默認(rèn)的連接池組件,項目中添加 spring-boot-starter-jdbcspring-boot-starter-data-jpa 模塊后,HikariCP 依賴會被自動引入。

快速使用

1)在你的 Spring Boot 項目中添加依賴配置:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

注意:以下常用的 ORM 組件中已經(jīng)包含了 JDBC 依賴,不需要重復(fù)引入:

  • spring-boot-starter-data-jpa
  • mybatis-spring-boot-starter
  • mybatis-plus-boot-starter

2)添加數(shù)據(jù)源配置:

## Spring HikaraDataSource Configuration
# spring.datasource.type=com.zaxxer.hikari.HikariDataSource
# spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# spring.datasource.name=HikariCP-1
spring.datasource.url=jdbc:mysql://localhost:3306/dbname?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&autoReconnectForPools=true&noAccessToProcedureBodies=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.maximum-pool-size=100
spring.datasource.hikari.minimum-idle=10
spring.datasource.hikari.pool-name=HikaraPool-1

連接池配置詳解

1)在 Spring Boot 項目中,一個簡單的 Spring DataSource 配置,通常只需要設(shè)置數(shù)據(jù)庫連接、用戶名和密碼三個參數(shù)。

## Spring DataSourceProperties
# 設(shè)置連接池類型,默認(rèn)自動獲?。蛇x)
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
# 設(shè)置數(shù)據(jù)庫驅(qū)動,默認(rèn)自動獲?。蛇x)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 生成唯一的數(shù)據(jù)源名稱,設(shè)置與否,都會優(yōu)先取 name 的值(可選)
spring.datasource.generate-unique-name=true
# 設(shè)置數(shù)據(jù)源名稱,默認(rèn)會生成唯一的數(shù)據(jù)源名稱,如:HikariPool-1(可選)
spring.datasource.name=HikariCP-1
# 設(shè)置數(shù)據(jù)庫連接(必選)
spring.datasource.url=jdbc:mysql://localhost:3306/dbname?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&autoReconnectForPools=true&noAccessToProcedureBodies=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
# 設(shè)置數(shù)據(jù)庫用戶名(必選)
spring.datasource.username=root
# 設(shè)置數(shù)據(jù)庫密碼(必選)
spring.datasource.password=123456

2)在 Spring Boot 項目中, Spring DataSource 會使用默認(rèn)的配置啟用 HikaraCP 數(shù)據(jù)庫連接池。我們也可以通過屬性文件來優(yōu)化 HikariCP 的配置項,尤其是連接池大小的設(shè)置。

## Spring HikariConfig
# 事務(wù)自動提交 - 默認(rèn)值:true
spring.datasource.hikari.auto-commit=true
# 連接測試查詢 - Using the JDBC4 <code>Connection.isValid()</code> method to test connection validity can be more efficient on some databases and is recommended.
# 如果你的驅(qū)動程序支持JDBC4,強(qiáng)烈建議不要設(shè)置此屬性。
spring.datasource.hikari.connection-test-query=select 1
# 連接超時時間 - 默認(rèn)值:30秒。
spring.datasource.hikari.connection-timeout=30000
# 連接池中允許閑置的最長時間 - 默認(rèn)值:10分鐘
spring.datasource.hikari.idle-timeout=600000
# 一個連接生命時長(毫秒),超時而沒被使用則被釋放 - 默認(rèn)值:30分鐘
spring.datasource.hikari.max-lifetime=1800000
# 連接池中允許的最大連接數(shù),包括閑置和使用中的連接 - 默認(rèn)值:10
spring.datasource.hikari.maximum-pool-size=100
# 連接池中允許的最小空閑連接數(shù) - 默認(rèn)值:10。
spring.datasource.hikari.minimum-idle=10
# 連接被測試活動的最長時間 - 默認(rèn)值:5秒。
spring.datasource.hikari.validation-timeout=5000
# 指定連接池的名稱 - 默認(rèn)自動生成
spring.datasource.hikari.pool-name=HikaraPool-1

多數(shù)據(jù)源配置

1)添加多數(shù)據(jù)源配置:

## Spring HikaraDataSource Configuration
# spring.datasource.one.driver-class-name=com.mysql.cj.jdbc.Driver
# spring.datasource.one.name=HikariCP-1
spring.datasource.one.url=jdbc:mysql://localhost:3306/kaddo-sit?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&autoReconnectForPools=true&noAccessToProcedureBodies=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
spring.datasource.one.username=root
spring.datasource.one.password=123456
spring.datasource.one.hikari.connection-timeout=30000
spring.datasource.one.hikari.idle-timeout=600000
spring.datasource.one.hikari.max-lifetime=1800000
spring.datasource.one.hikari.maximum-pool-size=100
spring.datasource.one.hikari.minimum-idle=10
spring.datasource.one.hikari.pool-name=HikaraPool-1
## Spring HikaraDataSource Configuration
# spring.datasource.two.driver-class-name=com.mysql.cj.jdbc.Driver
# spring.datasource.two.name=HikariCP-2
spring.datasource.two.url=jdbc:mysql://localhost:3306/kaddo-uat?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&autoReconnectForPools=true&noAccessToProcedureBodies=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
spring.datasource.two.username=root
spring.datasource.two.password=123456
spring.datasource.two.hikari.connection-timeout=30000
spring.datasource.two.hikari.idle-timeout=600000
spring.datasource.two.hikari.max-lifetime=1800000
spring.datasource.two.hikari.maximum-pool-size=100
spring.datasource.two.hikari.minimum-idle=10
spring.datasource.two.hikari.pool-name=HikaraPool-2

2)創(chuàng)建多數(shù)據(jù)源:

@Bean
@Primary
@ConfigurationProperties("spring.datasource.one")
public DataSourceProperties dataSourcePropertiesOne() {
	return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("spring.datasource.one.hikari")
public HikariDataSource dataSourceOne(DataSourceProperties properties) {
	return createHikariDataSource(properties);
}
@Bean
@ConfigurationProperties("spring.datasource.two")
public DataSourceProperties dataSourcePropertiesTwo() {
	return new DataSourceProperties();
}
@Bean
@ConfigurationProperties("spring.datasource.two.hikari")
public HikariDataSource dataSourceTwo(@Qualifier("dataSourcePropertiesTwo") DataSourceProperties properties) {
	return createHikariDataSource(properties);
}
  @SuppressWarnings("unchecked")
  private static <T> T createHikariDataSource(DataSourceProperties properties, Class<? extends DataSource> type) {
    return (T) properties.initializeDataSourceBuilder().type(type).build();
  }
  /**
   * 創(chuàng)建 HikariDataSource 數(shù)據(jù)源
   *
   * @param properties 參數(shù)
   * @return 數(shù)據(jù)源
   */
  private static HikariDataSource createHikariDataSource(DataSourceProperties properties) {
    HikariDataSource dataSource = createHikariDataSource(properties, HikariDataSource.class);
    if (StringUtils.hasText(properties.getName())) {
      dataSource.setPoolName(properties.getName());
    }
    return dataSource;
  }

3)使用多數(shù)據(jù)源:

@Autowired
private HikariDataSource dataSourceOne;
@Autowired
@Qualifier("dataSourceTwo")
private HikariDataSource dataSourceTwo;

配置多數(shù)據(jù)源的注意事項:

  • 配置多數(shù)據(jù)源時,最好通過 @Primary 指定默認(rèn)數(shù)據(jù)源。
  • 創(chuàng)建數(shù)據(jù)源對象時,建議使用 HikariDataSource 代替 DataSource。
  • 創(chuàng)建數(shù)據(jù)源對象時,注意通過 @Qualifier(“dataSourcePropertiesTwo”) 來指定數(shù)據(jù)源的配置屬性對象。
  • 創(chuàng)建數(shù)據(jù)源對象時,注意創(chuàng)建 Bean 的方法名,最好通過 @Bean(“dataSourceOne”) 來指定數(shù)據(jù)源對象的名稱。
  • 多數(shù)據(jù)源通常結(jié)合 ORM 框架一起使用,具體可參考 Kaddo 框架的 ORM 配置。

到此這篇關(guān)于Spring Boot 使用 HikariCP 連接池配置詳解的文章就介紹到這了,更多相關(guān)Spring Boot 使用 HikariCP 連接池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 代理機(jī)制的實例詳解

    java 代理機(jī)制的實例詳解

    這篇文章主要介紹了java 代理機(jī)制的實例詳解的相關(guān)資料,這里說明下如何實現(xiàn)代理機(jī)制,幫助大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • springboot2學(xué)習(xí)世界著名程序springboot開發(fā)體驗

    springboot2學(xué)習(xí)世界著名程序springboot開發(fā)體驗

    這篇文章主要為大家介紹了世界著名程序springboot開發(fā)體驗,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 使用Java實現(xiàn)將Excel工作表轉(zhuǎn)換為CSV格式

    使用Java實現(xiàn)將Excel工作表轉(zhuǎn)換為CSV格式

    在日常開發(fā)中,Excel 文件(.xls/.xlsx)是數(shù)據(jù)存儲和交換的常用格式,本文將介紹如何使用 Spire.XLS for Java 組件,高效實現(xiàn) Excel 文件到 CSV 格式的轉(zhuǎn)換,需要的可以了解下
    2025-10-10
  • 使用google.kaptcha來生成圖片驗證碼的實現(xiàn)方法

    使用google.kaptcha來生成圖片驗證碼的實現(xiàn)方法

    這篇文章主要介紹了使用google.kaptcha來生成圖片驗證碼的實現(xiàn)方法,非常不錯具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • JAVA實現(xiàn)空間索引編碼——GeoHash的示例

    JAVA實現(xiàn)空間索引編碼——GeoHash的示例

    本篇文章主要介紹了JAVA實現(xiàn)空間索引編碼——GeoHash的示例,如何從眾多的位置信息中查找到離自己最近的位置,有興趣的朋友可以了解一下
    2016-10-10
  • SpringBoot默認(rèn)配置的具體使用

    SpringBoot默認(rèn)配置的具體使用

    本文主要介紹了SpringBoot默認(rèn)配置的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • Java之進(jìn)程和線程的區(qū)別

    Java之進(jìn)程和線程的區(qū)別

    這篇文章主要介紹了進(jìn)程與線程的區(qū)別,線程具有許多傳統(tǒng)進(jìn)程所具有的特征,而把傳統(tǒng)的進(jìn)程稱為重型進(jìn)程(Heavy—Weight Process),它相當(dāng)于只有一個線程的任務(wù),有感興趣的小伙伴可以參考閱讀本文
    2023-03-03
  • easyExcel分批導(dǎo)入文件方式

    easyExcel分批導(dǎo)入文件方式

    這篇文章主要介紹了easyExcel分批導(dǎo)入文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 基于idea把maven工程轉(zhuǎn)換為web項目

    基于idea把maven工程轉(zhuǎn)換為web項目

    這篇文章主要介紹了基于idea把maven工程轉(zhuǎn)換為web項目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot中@ConditionalOnBean注解的具體使用

    SpringBoot中@ConditionalOnBean注解的具體使用

    本文主要介紹了SpringBoot中@ConditionalOnBean注解的具體使用,用于根據(jù)是否存在指定Bean動態(tài)注冊Bean,支持類型、名稱、注解及搜索范圍控制,常見于按需加載、自動配置和可選依賴場景,與@ConditionalOnMissingBean形成條件對立
    2025-06-06

最新評論

勐海县| 普陀区| 内黄县| 合川市| 潍坊市| 怀化市| 合作市| 铜山县| 平山县| 新邵县| 广河县| 宁城县| 开化县| 灵宝市| 古丈县| 绍兴县| 宜宾市| 岐山县| 山阳县| 五常市| 台中市| 阿城市| 湟源县| 朝阳市| 克拉玛依市| 罗江县| 江达县| 丹棱县| 怀宁县| 定边县| 焦作市| 塘沽区| 嘉鱼县| 北川| 望城县| 牙克石市| 陵水| 公安县| 山阳县| 肇州县| 汉川市|