Spring Boot 1 3預設連線池配置策略

2021-09-12 01:47:27 字數 3092 閱讀 1247

注意:如果我們使用spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 「starters」座標,spring boot將自動配置hikaricp連線池,因為hikaricp在效能和併發性相比其他連線池都要好。 

org.springframework.boot

spring-boot-starter-jdbc

or jpa的配置 

org.springframework.boot

spring-boot-starter-data-jpa

一、預設連線池策略

1.如果可以得到hikaricp連線池類,就優先配置hikaricp

2.否則,如果tomcat pooling類可以得到,則使用它

3.如果上面兩個都拿不到,則配置其他連線池,比如commons dbcp2 

spring.datasource.url=jdbc:mysql://localhost/test

spring.datasource.username=dbuser

spring.datasource.password=dbpass

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

#spring boot 1.3

spring.datasource.driverclassname=com.mysql.jdbc.driver

spring.datasource.testonborrow=true

spring.datasource.validationquery=select 1

spring.datasource.max-active=4

spring.datasource.initial-size=4

spring.datasource.max-wait=30000

spring.datasource.max-idle=4

spring.datasource.min-idle=3

spring.datasource.time-between-eviction-runs-millis=3000

spring.datasource.min-evictable-idle-time-millis=300000

yml檔案:

spring:

datasource:

url: jdbc:mysql://localhost:3306/heimdallr?useunicode=true&characterencoding=utf8&allowmultiqueries=true

username: root

password: 123

driver-class-name: com.mysql.jdbc.driver

# spring boot官方推薦的資料庫連線池是hikari,從一些第三方的評測結果看,hikari的效能比druid要好,但是druid自帶各種監控工具,背後又有阿里一直在為它背書

# hikari資料來源配置,

hikari:

connection-test-query: select 1 from dual

connection-timeout: 30000

maximum-pool-size: 20

max-lifetime: 1800000

minimum-idle: 5

二、自己指定連線池

通過設定spring.datasource.type屬性,可以跳過預設連線池選擇策略,比如指定druid連線池

spring:

datasource:

url: jdbc:mysql://localhost:3306/heimdallr?useunicode=true&characterencoding=utf8&allowmultiqueries=true

username: root

password: 123

driver-class-name: com.mysql.jdbc.driver

type: com.alibaba.druid.pool.druiddatasource

# 下面為連線池的補充設定,應用到上面所有資料來源中

# 初始化大小,最小,最大

max-idle: 10

max-wait: 1000

min-idle: 5

initial-size: 5

output.ansi.enabled: always

# 配置druid

druid:

# 配置獲取連線等待超時的時間

maxwait: 60000

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

timebetweenevictionrunsmillis: 60000

minevictableidletimemillis: 300000

validationquery: select 1 from t_user

testwhileidle: true

testonborrow: true

testonreturn: false

# 開啟pscache,並且指定每個連線上pscache的大小

poolpreparedstatements: true

maxpoolpreparedstatementperconnectionsize: 20

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

filters: stat,wall,log4j

connectionproperties: druid.stat.mergesql=true;druid.stat.slowsqlmillis=5000

# 合併多個druiddatasource的監控資料

# useglobaldatasourcestat: true

參考--

SpringBoot 預設日誌

by default,if you use the starters logback is used for logging.spring.io原話 log level error,warn,info,debug,or trace.等級順序公升高 作用 如設定info 則顯示error,warn,i...

springboot使用lettuce連線池

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

spring boot預設log配置

spring boot預設使用logback日誌系統,如果不需要更改為其他日誌系統比如log4j等,則無需多餘的配置,logback預設將日誌列印到控制台上。如果要使用logback,原則上需要新增以下依賴,但是由於一般的spring boot專案都會引用spring boot starter或者s...