亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

HikariCP 是一個(gè)高性能的 JDBC 連接池組件。

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

快速使用

1)在你的 Spring Boot 項(xiàng)目中添加依賴(lài)配置:

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

注意:以下常用的 ORM 組件中已經(jīng)包含了 JDBC 依賴(lài),不需要重復(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 項(xiàng)目中,一個(gè)簡(jiǎn)單的 Spring DataSource 配置,通常只需要設(shè)置數(shù)據(jù)庫(kù)連接、用戶(hù)名和密碼三個(gè)參數(shù)。

## Spring DataSourceProperties
# 設(shè)置連接池類(lèi)型,默認(rèn)自動(dòng)獲取(可選)
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
# 設(shè)置數(shù)據(jù)庫(kù)驅(qū)動(dòng),默認(rèn)自動(dòng)獲取(可選)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 生成唯一的數(shù)據(jù)源名稱(chēng),設(shè)置與否,都會(huì)優(yōu)先取 name 的值(可選)
spring.datasource.generate-unique-name=true
# 設(shè)置數(shù)據(jù)源名稱(chēng),默認(rèn)會(huì)生成唯一的數(shù)據(jù)源名稱(chēng),如:HikariPool-1(可選)
spring.datasource.name=HikariCP-1
# 設(shè)置數(shù)據(jù)庫(kù)連接(必選)
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ù)庫(kù)用戶(hù)名(必選)
spring.datasource.username=root
# 設(shè)置數(shù)據(jù)庫(kù)密碼(必選)
spring.datasource.password=123456

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

## Spring HikariConfig
# 事務(wù)自動(dòng)提交 - 默認(rèn)值:true
spring.datasource.hikari.auto-commit=true
# 連接測(cè)試查詢(xún) - Using the JDBC4 <code>Connection.isValid()</code> method to test connection validity can be more efficient on some databases and is recommended.
# 如果你的驅(qū)動(dòng)程序支持JDBC4,強(qiáng)烈建議不要設(shè)置此屬性。
spring.datasource.hikari.connection-test-query=select 1
# 連接超時(shí)時(shí)間 - 默認(rèn)值:30秒。
spring.datasource.hikari.connection-timeout=30000
# 連接池中允許閑置的最長(zhǎng)時(shí)間 - 默認(rèn)值:10分鐘
spring.datasource.hikari.idle-timeout=600000
# 一個(gè)連接生命時(shí)長(zhǎng)(毫秒),超時(shí)而沒(méi)被使用則被釋放 - 默認(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
# 連接被測(cè)試活動(dòng)的最長(zhǎng)時(shí)間 - 默認(rèn)值:5秒。
spring.datasource.hikari.validation-timeout=5000
# 指定連接池的名稱(chēng) - 默認(rèn)自動(dòng)生成
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ù)源的注意事項(xiàng):

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

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

相關(guān)文章

  • SpringBoot自動(dòng)初始化數(shù)據(jù)庫(kù)的方法分享

    SpringBoot自動(dòng)初始化數(shù)據(jù)庫(kù)的方法分享

    我們?cè)陧?xiàng)目中應(yīng)該經(jīng)常遇到過(guò)初始化數(shù)據(jù)的場(chǎng)景,特別是項(xiàng)目部署或者交付的時(shí)候,那么有什么方式可以在項(xiàng)目啟動(dòng)的時(shí)候自動(dòng)初始化數(shù)據(jù)庫(kù)呢,下面小編就來(lái)和大家分享幾個(gè)方法吧
    2023-08-08
  • Java+MyBatis+MySQL開(kāi)發(fā)環(huán)境搭建流程詳解

    Java+MyBatis+MySQL開(kāi)發(fā)環(huán)境搭建流程詳解

    Java的MyBatis框架提供了強(qiáng)大的數(shù)據(jù)庫(kù)操作支持,這里我們先在本地的開(kāi)發(fā)環(huán)境中上手,來(lái)看一下Java+MyBatis+MySQL開(kāi)發(fā)環(huán)境搭建流程詳
    2016-06-06
  • Springboot配置全局跨域未生效,訪問(wèn)接口報(bào)錯(cuò)問(wèn)題及解決

    Springboot配置全局跨域未生效,訪問(wèn)接口報(bào)錯(cuò)問(wèn)題及解決

    這篇文章主要介紹了Springboot配置全局跨域未生效,訪問(wèn)接口報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 解決Request.getParameter獲取不到特殊字符bug問(wèn)題

    解決Request.getParameter獲取不到特殊字符bug問(wèn)題

    這篇文章主要介紹了解決Request.getParameter獲取不到特殊字符bug問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳

    SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳

    這篇文章主要介紹了SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java selenium截圖操作的實(shí)現(xiàn)

    Java selenium截圖操作的實(shí)現(xiàn)

    這篇文章主要介紹了Java selenium截圖操作的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java之map的常見(jiàn)用法講解與五種循環(huán)遍歷實(shí)例代碼理解

    Java之map的常見(jiàn)用法講解與五種循環(huán)遍歷實(shí)例代碼理解

    map是一組鍵值對(duì)的組合,通俗理解類(lèi)似一種特殊的數(shù)組,a[key]=val,只不過(guò)數(shù)組元素的下標(biāo)是任意一種類(lèi)型,而且數(shù)組的元素的值也是任意一種類(lèi)型。有點(diǎn)類(lèi)似python中的字典。通過(guò)"鍵"來(lái)取值,類(lèi)似生活中的字典,已知索引,來(lái)查看對(duì)應(yīng)的信息
    2021-09-09
  • Spring Boot集成Mybatis中如何顯示日志的實(shí)現(xiàn)

    Spring Boot集成Mybatis中如何顯示日志的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Boot集成Mybatis中如何顯示日志的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java中生產(chǎn)者消費(fèi)者問(wèn)題總結(jié)

    Java中生產(chǎn)者消費(fèi)者問(wèn)題總結(jié)

    這篇文章主要介紹了Java中生產(chǎn)者消費(fèi)者問(wèn)題總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java scala模式匹配機(jī)制詳解

    Java scala模式匹配機(jī)制詳解

    模式匹配語(yǔ)法中,采用match關(guān)鍵字聲明,每個(gè)分支采用case關(guān)鍵字進(jìn)行聲明,當(dāng)需要匹配時(shí),會(huì)從第一個(gè)case分支開(kāi)始,如果匹配成功,那么執(zhí)行對(duì)應(yīng)的邏輯代碼,如果匹配不成功,繼續(xù)執(zhí)行下一個(gè)分支進(jìn)行判斷
    2023-02-02

最新評(píng)論