直接上代碼:
一.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 }
三.效果圖