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

Spring Boot數(shù)據(jù)庫(kù)鏈接池配置方法

 更新時(shí)間:2017年04月17日 09:53:59   投稿:mrr  
這篇文章主要介紹了Spring Boot數(shù)據(jù)庫(kù)鏈接池配置方法,需要的朋友可以參考下

配置方法

基于當(dāng)前的1.5.2.RELEASE的Spring Boot。

依照官方文檔,如果增加了如下依賴(lài)的配置,或者類(lèi)路徑中存在spring-boot-starter-jdbc的jar,那么已默認(rèn)啟用了數(shù)據(jù)庫(kù)鏈接池。

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

Spring Boot選擇數(shù)據(jù)庫(kù)鏈接池實(shí)現(xiàn)的判斷邏輯:

1.檢查T(mén)omcat的數(shù)據(jù)庫(kù)鏈接池實(shí)現(xiàn)是否可用,如可用,則啟用。使用spring.datasource.tomcat.*可以控制鏈接池的行為。

2.檢查HikariCP是否可用,如可用,則啟用。使用spring.datasource.hikari.*可以控制鏈接池的行為。

3.檢查Commons DBCP是否可用,如可用,則啟用;但Spring Boot不建議在生產(chǎn)環(huán)境使用該鏈接池的實(shí)現(xiàn)。

4.檢查Commons DBCP2是否可用,如可用,則啟用。使用spring.datasource.dbcp2.*可以控制鏈接池的行為。

使用tomcat-jdbc時(shí),可在application.yml增加配置項(xiàng)spring.datasource.tomcat.*來(lái)控制鏈接池的行為。比如如下配置。

spring:

datasource:
  url: jdbc:mysql://localhost:3306/jackieathome?useSSL=false
  username: root
  password: mypassword
  # 6.x版本的MySQL JDBC驅(qū)動(dòng)類(lèi)為com.mysql.cj.jdbc.Driver
  # 5.X版本的MySQL JDBC驅(qū)動(dòng)類(lèi)為com.mysql.jdbc.Driver
  driver-class-name: com.mysql.cj.jdbc.Driver
  tomcat:
   max-wait: 10000
   max-active: 30
   test-on-borrow: true
   # 傳遞MySQL JDBC特有的參數(shù)
   db-properties:
    logger: net.jackieathome.db.customized.MySQLLogger
    gatherPerfMetrics: 'true'
    profileSQL: 'true'
    reportMetricsIntervalMillis: '60000'
    logSlowQueries: 'true'
    explainSlowQueries: 'true'

    logging:

 level:
  # 關(guān)閉其它軟件的日志,減少干擾
  org: ERROR
  net: ERROR
  com: ERROR
  # 開(kāi)啟MySQL JDBC驅(qū)動(dòng)的日志
  MySQL: DEBUG

上述spring.datasource.tomcat.*代表的配置項(xiàng),可參考tomcat-jdbc的官方文檔Apache Tomcat 8.5 - The Tomcat JDBC Connection Pool或者Apache Tomcat 8.0 - The Tomcat JDBC Connection Pool。

依據(jù)tomcat-jdbc的文檔,如需要向數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)傳入控制參數(shù),可以使用db-properties字段。需要注意的是,當(dāng)使用MySQL驅(qū)動(dòng)時(shí),控制參數(shù)的值需要強(qiáng)制轉(zhuǎn)換為字符串,否則創(chuàng)建數(shù)據(jù)庫(kù)鏈接時(shí)會(huì)報(bào)錯(cuò)。配置方法如上述樣例中的 reportMetricsIntervalMillis: '60000'和logSlowQueries: 'true'。

依照MySQL JDBC驅(qū)動(dòng)文檔,可以配置一個(gè)日志記錄器,用于記錄其工作時(shí)的輸出,如下是實(shí)現(xiàn)樣例。

package net.jackieathome.db.customized;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MySQLLogger implements com.mysql.cj.api.log.Log {
  private static Logger LOG;
  public MySQLLogger(String name) {
    LOG = LoggerFactory.getLogger(name);
  }
  @Override
  public boolean isDebugEnabled() {
    return LOG.isDebugEnabled();
  }
  @Override
  public boolean isErrorEnabled() {
    return LOG.isErrorEnabled();
  }
  @Override
  public boolean isFatalEnabled() {
    return LOG.isErrorEnabled();
  }
  @Override
  public boolean isInfoEnabled() {
    return LOG.isInfoEnabled();
  }
  @Override
  public boolean isTraceEnabled() {
    return LOG.isTraceEnabled();
  }
  @Override
  public boolean isWarnEnabled() {
    return LOG.isWarnEnabled();
  }
  @Override
  public void logDebug(Object msg) {
    LOG.debug("{}", msg);
  }
  @Override
  public void logDebug(Object msg, Throwable thrown) {
    LOG.debug("{}", msg, thrown);
  }
  @Override
  public void logError(Object msg) {
    LOG.error("{}", msg);
  }
  @Override
  public void logError(Object msg, Throwable thrown) {
    LOG.error("{}", msg, thrown);
  }
  @Override
  public void logFatal(Object msg) {
    LOG.error("{}", msg);
  }
  @Override
  public void logFatal(Object msg, Throwable thrown) {
    LOG.error("{}", msg, thrown);
  }
  @Override
  public void logInfo(Object msg) {
    LOG.info("{}", msg);
  }
  @Override
  public void logInfo(Object msg, Throwable thrown) {
    LOG.info("{}", msg, thrown);
  }
  @Override
  public void logTrace(Object msg) {
    LOG.trace("{}", msg);
  }
  @Override
  public void logTrace(Object msg, Throwable thrown) {
    LOG.trace("{}", msg, thrown);
  }
  @Override
  public void logWarn(Object msg) {
    LOG.warn("{}", msg);
  }
  @Override
  public void logWarn(Object msg, Throwable thrown) {
    LOG.warn("{}", msg, thrown);
  }
}

同時(shí)修改application.yml,增加相應(yīng)的日志配置,如下。

logging:
  level:
    # 開(kāi)啟MySQL JDBC驅(qū)動(dòng)的日志
    MySQL: DEBUG

如下是MySQL JDBC驅(qū)動(dòng)輸出的樣例日志。

2017-04-16 00:51:32.626 QUERY created: Sun Apr 16 00:51:32 CST 2017 duration: 0 connection: 93 statement: 1 resultset: 1 message: /* mysql-connector-java-6.0.6 ( Revision: 3dab84f4d9bede3cdd14d57b99e9e98a02a5b97d ) */SELECT  @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_buffer_length AS net_buffer_length, @@net_write_timeout AS net_write_timeout, @@query_cache_size AS query_cache_size, @@query_cache_type AS query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS tx_isolation, @@wait_timeout AS wait_timeout
2017-04-16 00:51:32.629 FETCH created: Sun Apr 16 00:51:32 CST 2017 duration: 36 connection: 93 statement: 1 resultset: 1
2017-04-16 00:51:32.639 QUERY created: Sun Apr 16 00:51:32 CST 2017 duration: 1 connection: 93 statement: 999 resultset: 0 message: SET NAMES latin1
2017-04-16 00:51:32.640 FETCH created: Sun Apr 16 00:51:32 CST 2017 duration: 0 connection: 93 statement: 999 resultset: 0
2017-04-16 00:51:32.642 QUERY created: Sun Apr 16 00:51:32 CST 2017 duration: 2 connection: 93 statement: 999 resultset: 0 message: SET character_set_results = NULL
2017-04-16 00:51:32.643 FETCH created: Sun Apr 16 00:51:32 CST 2017 duration: 0 connection: 93 statement: 999 resultset: 0
2017-04-16 00:51:32.645 QUERY created: Sun Apr 16 00:51:32 CST 2017 duration: 0 connection: 93 statement: 999 resultset: 0 message: SET autocommit=1
2017-04-16 00:51:32.646 FETCH created: Sun Apr 16 00:51:32 CST 2017 duration: 0 connection: 93 statement: 999 resultset: 0
2017-04-16 00:51:32.667 QUERY created: Sun Apr 16 00:51:32 CST 2017 duration: 1 connection: 94 statement: 2 resultset: 2 message: /* mysql-connector-java-6.0.6 ( Revision: 3dab84f4d9bede3cdd14d57b99e9e98a02a5b97d ) */SELECT  @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_buffer_length AS net_buffer_length, @@net_write_timeout AS net_write_timeout, @@query_cache_size AS query_cache_size, @@query_cache_type AS query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS tx_isolation, @@wait_timeout AS wait_timeout

以上所述是小編給大家介紹的Spring Boot數(shù)據(jù)庫(kù)鏈接池配置方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java 獲取上一個(gè)月的月份的正確寫(xiě)法

    Java 獲取上一個(gè)月的月份的正確寫(xiě)法

    這篇文章主要介紹了java獲取上一個(gè)月月份,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • MyBatis-Plus介紹及Spring Boot 3集成指南

    MyBatis-Plus介紹及Spring Boot 3集成指南

    本文介紹了MyBatis-Plus的基本特性及其與Spring Boot 3的集成步驟,通過(guò)使用MyBatis-Plus,開(kāi)發(fā)者可以快速地搭建和開(kāi)發(fā)數(shù)據(jù)訪問(wèn)層,同時(shí)提高代碼質(zhì)量和開(kāi)發(fā)效率,感興趣的朋友一起看看吧
    2024-05-05
  • springboot多數(shù)據(jù)源配合docker部署mysql主從實(shí)現(xiàn)讀寫(xiě)分離效果

    springboot多數(shù)據(jù)源配合docker部署mysql主從實(shí)現(xiàn)讀寫(xiě)分離效果

    這篇文章主要介紹了springboot多數(shù)據(jù)源配合docker部署mysql主從實(shí)現(xiàn)讀寫(xiě)分離,通過(guò)使用docker獲取mysql鏡像,具體內(nèi)容詳情跟隨小編一起看看吧
    2021-09-09
  • SpringBoot緩存方法返回值的方法詳解

    SpringBoot緩存方法返回值的方法詳解

    如何緩存方法的返回值?應(yīng)該會(huì)有很多的辦法,這篇文章主要為大家介紹兩個(gè)比較常見(jiàn)并且比較容易實(shí)現(xiàn)的辦法:自定義注解和SpringCache,希望對(duì)大家有所幫助
    2023-10-10
  • Spring?MVC異步上傳、跨服務(wù)器上傳和文件下載功能實(shí)現(xiàn)

    Spring?MVC異步上傳、跨服務(wù)器上傳和文件下載功能實(shí)現(xiàn)

    這篇文章主要介紹了Spring?MVC異步上傳、跨服務(wù)器上傳和文件下載功能實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java 日期與時(shí)間API相關(guān)用法總結(jié)

    Java 日期與時(shí)間API相關(guān)用法總結(jié)

    這篇文章主要介紹了Java 日期與時(shí)間API相關(guān)用法總結(jié),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-02-02
  • JVM調(diào)試命令與調(diào)試工具詳解

    JVM調(diào)試命令與調(diào)試工具詳解

    JVM statistics Monitoring,用于監(jiān)視虛擬機(jī)運(yùn)行時(shí)狀態(tài)信息的命令,它可以顯示出虛擬機(jī)進(jìn)程中的類(lèi)裝載、內(nèi)存、垃圾收集、JIT編譯等運(yùn)行數(shù)據(jù),這篇文章主要介紹了JVM調(diào)試命令與調(diào)試工具,需要的朋友可以參考下
    2023-10-10
  • Java 集合框架之List 的使用(附小游戲練習(xí))

    Java 集合框架之List 的使用(附小游戲練習(xí))

    這篇文章主要介紹Java 集合框架中List 的使用,下面文章將圍繞Java 集合框架中List 的使用展開(kāi)話題,并附上一些小游戲練習(xí),需要的朋友可以參考一下
    2021-10-10
  • 通過(guò)實(shí)例解析Java List正確使用方法

    通過(guò)實(shí)例解析Java List正確使用方法

    這篇文章主要介紹了通過(guò)實(shí)例解析Java List正確使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java實(shí)現(xiàn)接口限流方案

    Java實(shí)現(xiàn)接口限流方案

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)接口限流方案,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評(píng)論