[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之后浏览器会报重定向次数过多的问题,截图如下
正确的打开方式如下: