亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在SpringBoot中配置Druid配置

發布時間:2021-05-22 18:24:46 來源:億速云 閱讀:441 作者:Leah 欄目:編程語言

如何在SpringBoot中配置Druid配置?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

Druid是阿里開源的一個JDBC應用組件, 其包括三部分:

  • DruidDriver: 代理Driver,能夠提供基于Filter-Chain模式的插件體系。

  • DruidDataSource: 高效可管理的數據庫連接池。

  • SQLParser: 實用的SQL語法分析

通過Druid連接池中間件, 我們可以實現:

  • 可以監控數據庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對于線上分析數據庫訪問性能有幫助。

  • 替換傳統的DBCP和C3P0連接池中間件。Druid提供了一個高效、功能強大、可擴展性好的數據庫連接池。

  • 數據庫密碼加密。直接把數據庫密碼寫在配置文件中,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。

  • SQL執行日志,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的數據庫訪問情況。

  • 擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴展插件。

配置代碼如下

spring:
 datasource:
  type: com.alibaba.druid.pool.DruidDataSource
  driverClassName: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://${url}:${port}/${數據庫名}?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&useAffectedRows=true
  username: ${username}
  password: ${password}
 druid:
   initial-size: 10 # 初始化時建立物理連接的個數。初始化發生在顯示調用init方法,或者第一次getConnection時
   min-idle: 10 # 最小連接池數量
   maxActive: 200 # 最大連接池數量
   maxWait: 60000 # 獲取連接時最大等待時間,單位毫秒。配置了maxWait之后,缺省啟用公平鎖,并發效率會有所下降,如果需要可以通過配置
   timeBetweenEvictionRunsMillis: 60000 # 關閉空閑連接的檢測時間間隔.Destroy線程會檢測連接的間隔時間,如果連接空閑時間大于等于minEvictableIdleTimeMillis則關閉物理連接。
   minEvictableIdleTimeMillis: 300000 # 連接的最小生存時間.連接保持空閑而不被驅逐的最小時間
   validationQuery: SELECT 1 FROM DUAL # 驗證數據庫服務可用性的sql.用來檢測連接是否有效的sql 因數據庫方言而差, 例如 oracle 應該寫成 SELECT 1 FROM DUAL
   testWhileIdle: true # 申請連接時檢測空閑時間,根據空閑時間再檢測連接是否有效.建議配置為true,不影響性能,并且保證安全性。申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRun
   testOnBorrow: false # 申請連接時直接檢測連接是否有效.申請連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能。
   testOnReturn: false # 歸還連接時檢測連接是否有效.歸還連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能。
   poolPreparedStatements: true # 開啟PSCache
   maxPoolPreparedStatementPerConnectionSize: 20 #設置PSCache值
   connectionErrorRetryAttempts: 3 # 連接出錯后再嘗試連接三次
   breakAfterAcquireFailure: true # 數據庫服務宕機自動重連機制
   timeBetweenConnectErrorMillis: 300000 # 連接出錯后重試時間間隔
   asyncInit: true # 異步初始化策略
   remove-abandoned: true # 是否自動回收超時連接
   remove-abandoned-timeout: 1800 # 超時時間(以秒數為單位)
   transaction-query-timeout: 6000 # 事務超時時間
   filters: stat,wall,log4j2
   connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
   web-stat-filter:
    enabled: true
    url-pattern: "/*"
    exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
   stat-view-servlet:
    url-pattern: "/druid/*"
    allow:
    deny:
    reset-enable: false
    login-username: admin
    login-password: admin

druid監控數據的外部化調用

@RestController
public class DruidStatController {
  @GetMapping("/stat")
  public Object druidStat() {
    // DruidStatManagerFacade#getDataSourceStatDataList 該方法可以獲取所有數據源的監控數據
    return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
  }
}

圖例

如何在SpringBoot中配置Druid配置

springboot是什么

springboot一種全新的編程規范,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程,SpringBoot也是一個服務于框架的框架,服務范圍是簡化配置文件。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梁平县| 临洮县| 呼和浩特市| 贵溪市| 昌乐县| 左贡县| 武胜县| 黄石市| 海盐县| 翁牛特旗| 昭觉县| 临澧县| 双桥区| 休宁县| 灵璧县| 沁源县| 望城县| 南京市| 康马县| 泰宁县| 佛冈县| 图片| 门头沟区| 平顺县| 溧水县| 天长市| 星子县| 双城市| 西乌珠穆沁旗| 平果县| 舞钢市| 类乌齐县| 灵寿县| 北宁市| 筠连县| 孝昌县| 榆树市| 平塘县| 乌兰浩特市| 塘沽区| 福建省|