常用的資料庫連線池使用的是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...