注意:如果我們使用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...