1. 程式人生 > >[springboot]::整合druid

[springboot]::整合druid

1,首先在pom.xml引入druid的
使用版本號

<!--整合druid-->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.4</version>
		</dependency>

2.在application.properties 增加druid的配置

spring.datasource.url=jdbc:mysql://localhost:3306/mytime?characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
### 資料來源類別
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
### 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
### 配置獲取連線等待超時的時間,單位是毫秒
spring.datasource.tomcat.time-between-eviction-runs-millis=6000
### 配置一個連結在池中最小生存的時間,單位是毫秒
spring.datasource.min-evictable-idle-time-millis=300000
spring.datasource.validationQuery=select 1 from DUAL
spring.datasourc.testWhileIdle=true
spring.datasourc..testOnBorrow=false
spring.datasourc.testOnReturn=false
### 開啟PSCache,並且制定每個連線上PSCache的大小
spring.datasourc.poolPreparedStatement=true
spring.datasourc.maxPoolPreparedStatementPerConnectionSize=20
### 配置監控統計攔截的filters,去掉後監控介面的sql無法統計,"wall"用於防火牆
spring.datasourc.filters=stat,wall,log4j
### connectProperties屬性開啟mergeSql
spring.datasourc.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
### 合併多個DruidDataSource的監控資料
spring.datasourc.useGlobalDataSourceStat=true

書上這麼多配置,真不好記,全打上去了…
3.開啟監控
新建一個包config,建立名為DruidConfig的類

package com.example.demo.config;

import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DruIdConfig {
    @Bean
    public ServletRegistrationBean druidStatViewServle(){
        //ServletRegistrationBean提供類進行註冊
        //@Bean和spring中的配置比較
        //<bean id="@bean 的方法名" class = "方法返回值的型別"></bean>
        ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        //新增初始化引數 initParams
        //白名單
        servletRegistrationBean.addInitParameter("allow","127.0.0.1");
        //IP 黑名單同時存在時,deny由於allow
        //如果滿足deny,就提示sorry,you are not permitted to view this page.servletRegistrationBean.addInitParameter("deny","127.0.0.1");
        //登入檢視資訊的賬號 和密碼
        servletRegistrationBean.addInitParameter("loginUsername","admin");
        servletRegistrationBean.addInitParameter("loginPassword","admin");
        //是否能夠重置資料
        servletRegistrationBean.addInitParameter("resetEnable","false");
        return  servletRegistrationBean;
    }
    @Bean
    public FilterRegistrationBean druidStatFilter(){
        FilterRegistrationBean filterRegistrationBean= new FilterRegistrationBean( new WebStatFilter());
        //新增過濾規則
        filterRegistrationBean.addUrlPatterns("/*");
        //新增需要忽略的格式資訊
        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/*");//
        return filterRegistrationBean;
    }
}

作者書上是這樣的

filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");//加上druid之後瀏覽器會報重定向次數過多的問題,截圖如下

在這裡插入圖片描述
正確的開啟方式如下:
在這裡插入圖片描述
在這裡插入圖片描述