SpringBoot配置Druid监控页面方法
第一步:先在maven中引入druid的依赖
网上有的方法引入的是如下依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.17</version>
</dependency>
但是最好使用官方推荐的写法
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
第二步:编写配置类与配置文件
1、在配置文件.yaml或.properties配置文件中添加如下代码
spring:
datasource:
url: jdbc:mysql://localhost:3306/${数据库名}
username: root
password: ${你自己的密码}
# 根据你自己的mysql版本选在对应的版本驱动,mysql5不带.cj,mysql8带.cj
driver-class-name: com.mysql.cj.jdbc.Driver
# 以下的配置根据自己的需要配置即可
#####DruidDataSource配置#####################
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5
minIdle: 5
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
#合并多个DruidDataSource的监控数据
useGlobalDataSourceStat: true
2、编写配置类
package com.atguigu.admin.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class MyDataSourceConfig {
//默认的自动配置是判断容器中没有定义数据源,才会自动配置HikariDataSource的数据源
//将dataSource与配置文件中的属性进行绑定
@ConfigurationProperties("spring.datasource")
@Bean
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
/**
* 配置druid的监控页功能
* @return
*/
@Bean
public ServletRegistrationBean statViewServlet(){
StatViewServlet statViewServlet = new StatViewServlet();
ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<>(statViewServlet,"/druid/*");
return registrationBean;
}
}
最后访问http://localhost:8080/druid/index.html即可显示监控页
注:如果访问页面显示的是404(这里面我只说我发现的方法)
1、更换druid的版本
2、查看配置类中的代码中填写的urlMapping参数,这里面的路径决定了你访问监控页面的路径
ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<>(statViewServlet,"/druid/*");
3、查看有没有配置项目路径
//例如
server.servlet.context-path=/admin