1. 程式人生 > >spring boot配置druid資料來源和監控配置

spring boot配置druid資料來源和監控配置

直接上程式碼:

一.pom.xml中新增依賴

 1 <dependency>
 2             <groupId>com.github.drtrang</groupId>
 3             <artifactId>druid-spring-boot2-starter</artifactId>
 4             <version>1.1.9</version>
 5         </dependency>
 6 
 7         <dependency>
 8
<groupId>com.alibaba</groupId> 9 <artifactId>druid</artifactId> 10 <version>1.0.31</version> 11 </dependency>

二.配置資料來源與監控

第一種方法通過properties配置

 #配置資料來源
spring.datasource.url=jdbc:mysql://106.14.xx.xx:3306/test
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.username=123456
spring.datasource.druid.password=123456

1
# 下面為連線池的補充設定,應用到上面所有資料來源中 2 # 初始化大小,最小,最大 3 spring.datasource.druid.initial-size=5 4 spring.datasource.druid.min-idle=5 5 spring.datasource.druid.max-active=20 6 # 配置獲取連線等待超時的時間 7 spring.datasource.druid.max-wait=60000 8 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 9 spring.datasource.druid.time-between-eviction-runs-millis=60000 10
# 配置一個連線在池中最小生存的時間,單位是毫秒 11 spring.datasource.druid.min-evictable-idle-time-millis=300000 12 spring.datasource.druid.validation-query=SELECT 1 FROM DUAL 13 spring.datasource.druid.test-while-idle=true 14 spring.datasource.druid.test-on-borrow=false 15 spring.datasource.druid.test-on-return=false 16 # 開啟PSCache,並且指定每個連線上PSCache的大小 17 spring.datasource.druid.pool-prepared-statements=true 18 spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 19 # 配置監控統計攔截的filters,去掉後監控介面sql無法統計,'wall'用於防火牆 20 #spring.datasource.druid.filter-class-names=com.alibaba.druid.filter.stat.StatFilter 21 #spring.datasource.druid.filter-class-names=com.alibaba.druid.wall.WallFilter 22 #spring.datasource.druid.filter-class-names=com.alibaba.druid.filter.logging.Log4jFilter,com.alibaba.druid.filter.stat.StatFilter,com.alibaba.druid.wall.WallFilter 23 # 通過connectProperties屬性來開啟mergeSql功能;慢SQL記錄 24 #spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 25 #spring.datasource.druid.connect-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 26 # 合併多個DruidDataSource的監控資料 27 #spring.datasource.useGlobalDataSourceStat=true 28 29 # WebStatFilter配置,說明請參考Druid Wiki,配置_配置WebStatFilter 30 #是否開啟web-jdbc監控 預設是false 31 spring.datasource.druid.web-stat.enabled=true 32 #是否開啟session統計 預設false 33 spring.datasource.druid.web-stat.session-stat-enable=true 34 #設定session統計的最大值 預設是1000 35 spring.datasource.druid.web-stat.session-stat-max-count=1000 36 #是否開啟單個監控url呼叫的sql列表 預設開啟 37 spring.datasource.druid.web-stat.profile-enable=true 38 #過濾器url的對映規則 39 spring.datasource.druid.web-stat.url-patterns=/* 40 #過濾器url的排除規則 41 spring.datasource.druid.web-stat.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/* 42 43 # StatViewServlet配置,說明請參考Druid Wiki,配置_StatViewServlet配置 44 #是否開啟druid的資料統計介面 預設false 45 spring.datasource.druid.stat-view-servlet.enabled= true 46 #servlet對映規則,預設訪問http:/**xxx/druid/ 47 spring.datasource.druid.stat-view-servlet.url-mappings=/druid/* 48 #是否允許清空統計資料 預設false 49 spring.datasource.druid.stat-view-servlet.reset-enable= false 50 #設定登入名 51 spring.datasource.druid.stat-view-servlet.login-username= admin 52 #設定密碼 53 spring.datasource.druid.stat-view-servlet.login-password= admin 54 #設定白名單 55 spring.datasource.druid.stat-view-servlet.allow= 127.0.0.1 56 #訪問黑名單 57 #spring.datasource.druid.stat-view-servlet.deny= 192.168.32.139

第二種方法通過java配置類設定:

DruidConfiguration該類與主程式xxApplication同級
 1 package com.ieou.capsule;
 2 
 3 import com.alibaba.druid.support.http.StatViewServlet;
 4 import com.alibaba.druid.support.http.WebStatFilter;
 5 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 6 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 7 import org.springframework.context.annotation.Bean;
 8 import org.springframework.context.annotation.Configuration;
 9 
10 @Configuration
11 public class DruidConfiguration {
12 
13     @Bean
14     public ServletRegistrationBean statViewServlet(){
15 
16         ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
17 
18         servletRegistrationBean.addInitParameter("loginUsername","admin");
19         servletRegistrationBean.addInitParameter("loginPassword","admin");
20         servletRegistrationBean.addInitParameter("resetEnable","false");
21         return servletRegistrationBean;
22     }
23 
24     @Bean
25     public FilterRegistrationBean statFilter(){
26 
27         FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
28 
29 
30         filterRegistrationBean.addUrlPatterns("/*");
31         filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*");
32 
33         return filterRegistrationBean;
34     }
35 }

三.效果圖