spring boot 快速開發 連線池配置

2021-08-29 23:49:52 字數 4780 閱讀 7770

常用的資料庫連線池使用的是druid,可以配置監控 。spring boot 2 預設的連線池是hikaricp ,號稱是效能最好的連線池。

(1)hikaricp 的配置

hikaricp是springboot2預設連線池。可以只使用必要配置,由spring boot 自動對映。

#必要配置

spring.datasource.driver-class-name=com.mysql.jdbc.driver

spring.datasource.url=jdbc:mysql://localhost:3306/database?usessl=false(不適用ssl)

spring.datasource.username=

spring.datasource.password=

#常用配置

spring.datasource.hikari.auto-commit=true #控制從池返回的連線的預設自動提交行為。預設值:true

spring.datasource.hikari.connection-timeout= #等待來自池的連線的最大毫秒數。預設值:30000(30秒)

spring.datasource.hikari.idle-timeout= #允許連線在池中閒置的最長時間。 預設值:600000(10分鐘)

spring.datasource.hikari.max-lifetime= #連線的最大生存期。預設值:1800000(30分鐘)

spring.datasource.hikari.connection-test-query= #確認與資料庫的連線仍然存在之前將要執行的查詢。(不支援jdbc4時設定)

spring.datasource.hikari.minimum-idle= #最小空閒連線數 預設值:10

spring.datasource.hikari.maximum-pool-size= #允許達到的最大大小,包括空閒和正在使用的連線。預設值:10

#不常用配置

spring.datasource.hikari.metric-registry= #允許使用的codahale/dropwizard 例項metricregistry來記錄各種指標

spring.datasource.hikari.health-check-registry= #允許使用的codahale/dropwizard 的例項healthcheckregistry來報告當前的健康資訊。

spring.datasource.hikari.pool-name= #連線池的名稱

spring.datasource.hikari.initialization-fail-timeout= #連線失敗時嘗試時間

spring.datasource.hikari.isolate-internal-queries= #是否在其自己的事務中隔離內部池查詢。該屬性僅適用於autocommit禁用的情況。 預設值:false

spring.datasource.hikari.allow-pool-suspension= #是否可以通過jmx暫停和恢復。預設值:false

spring.datasource.hikari.read-only= #獲取的連線是否處於唯讀模式。預設值:false

spring.datasource.hikari.register-mbeans= #是否註冊jmx管理bean(「mbeans」)。 預設值:false

spring.datasource.hikari.catalog= #設定預設目錄為支援目錄的概念資料庫。預設:驅動程式預設

spring.datasource.hikari.connection-init-sql= #每個新連線建立後,將其新增到池中之前執行該語句。預設值:無

spring.datasource.hikari.driver-class-name= #較老的驅動程式還必須指定。預設值:無

spring.datasource.hikari.transaction-isolation= #從池返回的連線的預設事務隔離級別。預設:驅動程式指定。

spring.datasource.hikari.validation-timeout= #連線測試活動的最長時間。預設值:5000

spring.datasource.hikari.leak-detection-threshold= #連線洩漏檢測。預設值:0

spring.datasource.hikari.datasource= #直接設定datasource池的例項,而不是通過反射來構造。 預設值:無

spring.datasource.hikari.schema= #設定的預設模式。預設:驅動程式預設

spring.datasource.hikari.threadfactory= #設定用於建立池使用的所有執行緒的例項。 預設值:無

spring.datasource.hikari.scheduledexecutor= #設定用於各種內部計畫任務的例項。預設值:無

(2)druid的配置

druid 由手動配置構造類,因為要配置監控頁面。同時必須配置日誌。

spring.datasource.url=jdbc:mysql://localhost:3006/database?usessl=false

spring.datasource.username=

spring.datasource.password=

spring.datasource.driver-class-name=com.mysql.jdbc.driver

spring.datasource.type=com.alibaba.druid.pool.druiddatasource

## 下面為連線池的補充設定

spring.datasource.initialsize=5

spring.datasource.minidle=5

spring.datasource.maxactive=20

spring.datasource.maxwait=60000 # 配置獲取連線等待超時的時間

spring.datasource.timebetweenevictionrunsmillis=60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒

spring.datasource.minevictableidletimemillis=300000 # 配置乙個連線在池中最小生存的時間,單位是毫秒

spring.datasource.validationquery=select 1 from dual

spring.datasource.testwhileidle=true

spring.datasource.testonborrow=false

spring.datasource.testonreturn=false

spring.datasource.filters=stat,wall,log4j # 配置監控統計攔截的filters,去掉後監控介面sql無法統計,'wall'用於防火牆

spring.datasource.logslowsql=true #是否顯示sql語句

@configuration #(在啟動時載入)

public class druidconfig ")

private string dburl;

@value("$")

private string username;

@value("$")

private string password;

@value("$")

private string driverclassname;

@value("$")

private int initialsize;

@value("$")

private int minidle;

@value("$")

private int maxactive;

@value("$")

private int maxwait;

@value("$")

private int timebetweenevictionrunsmillis;

@value("$")

private int minevictableidletimemillis;

@value("$")

private string validationquery;

@value("$")

private boolean testwhileidle;

@value("$")

private boolean testonborrow;

@value("$")

private boolean testonreturn;

@value("$")

private string filters;

@value("$")

private string logslowsql;

@bean

public servletregistrationbean druidservlet()

@bean

public filterregistrationbean filterregistrationbean()

private static final logger log = logge***ctory.getlogger(druiddatasource.class);

@bean

public datasource druiddatasource() catch (sqlexception e)

return datasource;

}}

springboot使用lettuce連線池

springboot對連線池的使用非常智慧型,配置檔案中新增lettuce.pool相關配置,則會使用到lettuce連線池,並將相關配置設定為連線池相關引數,前提是這些引數是springboot配置檔案中內建的,使用自定義引數應該也是可以的,有時間在研究 否則不使用,通過斷點除錯檢視 如過使用re...

基於SpringBoot的快速開發框架分享

首先github 介紹一下我的這個專案,這個專案我是去年開始做的,斷斷續續寫了差不多4 5個月 而完善功能之後,也是很久沒有修改過了。這個框架基於rest風格開發,適合做前後端分離的專案,用到的技術也特別注重開發效率,都是選擇了一些可以高效開發並且使用簡單的技術。前段時間使用過thinkphp,自認...

Spring Boot快速入門

spring boot屬性配置檔案詳解 自定義屬性與載入 我們在使用spring boot的時候,通常也需要定義一些自己使用的屬性,我們可以如下方式直接定義 xml xml org.springframework.bootgroupid spring boot starterartifactid d...