springboot项目中实现访问druid内置监控页面

以下是在springboot项目中实现访问druid内置监控页面的完整攻略:

1. 添加druid依赖

pom.xml文件中添加druid依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>${druid.version}</version>
</dependency>

2. 配置druid数据源

application.properties文件中添加druid数据源的配置项,如下所示:

# druid数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# druid连接池配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=2
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=0
spring.datasource.druid.max-wait=60000
spring.datasource.druid.validation-query=select 1 from dual
spring.datasource.druid.filters=log4j,stat,wall
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=1000

# druid监控配置
spring.datasource.druid.monitor-stat-view-servlet.enabled=true
spring.datasource.druid.monitor-stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.monitor-stat-view-servlet.reset-enable=true

spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=1000

其中,spring.datasource.druid.monitor-stat-view-servlet.enabled=true表示开启druid监控页面访问功能;spring.datasource.druid.monitor-stat-view-servlet.url-pattern=/druid/*表示访问druid监控页面的路径;spring.datasource.druid.monitor-stat-view-servlet.reset-enable=true表示重置数据源的时候是否清空所有的监控数据。

3. 配置Servlet和Filter

WebConfig.java文件中配置Servlet和Filter,如下所示:

@Configuration
public class WebConfig {
    @Bean
    public ServletRegistrationBean druidServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        // IP白名单
        servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        // IP黑名单(共同存在时,deny优先于allow)
        servletRegistrationBean.addInitParameter("deny", "");
        // 控制台管理用户
        servletRegistrationBean.addInitParameter("loginUsername", "admin");
        servletRegistrationBean.addInitParameter("loginPassword", "admin");
        // 是否允许重置数据
        servletRegistrationBean.addInitParameter("resetEnable", "false");
        return servletRegistrationBean;
    }

    @Bean
    public FilterRegistrationBean druidFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
        // 添加过滤规则
        filterRegistrationBean.addUrlPatterns("/*");
        // 监控选项滤器
        filterRegistrationBean.addInitParameter("DruidWebStatFilter", "/*");
        // 添加忽略的格式化类型
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;
    }
}

其中,allow表示允许访问druid监控页面的ip地址,可以配置多个,用逗号隔开;loginUsernameloginPassword表示druid监控页面的登录用户名和密码;resetEnable表示是否允许重置数据;addUrlPatterns表示添加过滤规则,这里表示所有连接都需要经过过滤;addInitParameter表示添加过滤器的参数,DruidWebStatFilter表示监控选项滤器,这里设置为/*,表示所有的url请求都要进行数据监控,exclusions表示要忽略的格式化类型,多个之间用逗号隔开。

4. 访问druid监控页面

在浏览器中输入http://127.0.0.1:8080/druid,就可以访问druid监控页面了。登录的用户名和密码与上面在ServletRegistrationBean中配置的loginUsernameloginPassword保持一致。

示例说明

示例1:添加IP白名单

在ServletRegistrationBean中添加allow参数,如下所示:

@Bean
public ServletRegistrationBean druidServlet() {
    ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    // IP白名单
    servletRegistrationBean.addInitParameter("allow", "127.0.0.1,192.168.1.100");
    // 控制台管理用户
    servletRegistrationBean.addInitParameter("loginUsername", "admin");
    servletRegistrationBean.addInitParameter("loginPassword", "admin");
    // 是否允许重置数据
    servletRegistrationBean.addInitParameter("resetEnable", "false");
    return servletRegistrationBean;
}

这里添加了一条allow记录,表示允许127.0.0.1192.168.1.100这两个IP地址访问druid监控页面。

示例2:忽略指定类型的请求

在FilterRegistrationBean中添加exclusions参数,如下所示:

@Bean
public FilterRegistrationBean druidFilter() {
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
    // 添加过滤规则
    filterRegistrationBean.addUrlPatterns("/*");
    // 监控选项滤器
    filterRegistrationBean.addInitParameter("DruidWebStatFilter", "/*");
    // 添加忽略的格式化类型
    filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
    return filterRegistrationBean;
}

这里添加了一条exclusions记录,表示在访问druid监控页面时,不对*.js,*.gif,*.jpg,*.png,*.css,*.ico/druid/*这些请求进行数据监控。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot项目中实现访问druid内置监控页面 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 分享个简易版Linux服务器初始化Shell脚本

    下面是关于分享Linux服务器初始化Shell脚本的完整攻略: 1. 简介 Shell脚本是针对Unix/Linux操作系统的一种脚本语言,是管理和维护Linux服务器的重要工具。本文将分享一份简易的Linux服务器初始化Shell脚本,用于快速配置普通用户、安装必要软件、配置防火墙等。 2. 环境 编写Shell脚本需要保证以下两点: 有一个Linux服务…

    other 2023年6月20日
    00
  • Java实现验证文件名有效性的方法详解

    Java 实现验证文件名有效性的方法详解 在进行文件操作时,通常会涉及到对文件名的操作,因此我们需要在程序中验证文件名的有效性,避免出现问题。本文将详细讲解如何使用 Java 实现验证文件名的有效性。 文件名中的特殊字符 在进行文件操作时,常常需要使用一些特殊字符作为文件名,例如: 空格 斜杠(/ 或 \) 冒号 问号 星号 双引号 等等 然而,在一些操作系…

    other 2023年6月26日
    00
  • Java子类对象的实例化过程分析

    Java子类对象的实例化过程分析 概述 在Java中,当我们创建一个子类对象时,其实会经历一系列的步骤。本文将通过分析Java子类对象的实例化过程,帮助读者更好地理解Java面向对象编程中一些重要的概念和机制。 具体步骤 Java子类对象的实例化过程包含以下几个步骤: 继承父类:子类继承了父类的所有属性和方法; 初始化父类属性:子类构造方法首先会调用父类的构…

    other 2023年6月26日
    00
  • git远程强制更新到本地

    以下是关于如何将Git远程仓库强制更新到本地的完整攻略,包括基本知识和两个示例。 基本知识 在Git中,使用git pull命令可以将远程仓库的代码更新到本地仓。但是,如果本地仓库和远程仓库的代码不致,可能会导致合并冲突。此时,可以使用git fetch命令将远程仓库的代码下载到本地,然后使用git reset命令强制更新本地仓库的代码。 示例说明 以下是两…

    other 2023年5月7日
    00
  • 驱动精灵安装使用方法教程 附最新驱动精灵下载地址

    驱动精灵安装使用方法教程 驱动精灵是一款常用的驱动程序管理工具,可以帮助用户快速安装、更新和备份计算机硬件设备的驱动程序。本教程将详细介绍驱动精灵的安装和使用方法,并提供最新的驱动精灵下载地址。 步骤一:下载驱动精灵 首先,您需要下载最新版本的驱动精灵安装程序。您可以通过以下链接下载: 最新驱动精灵下载地址 请点击链接,下载驱动精灵安装程序到您的计算机。 步…

    other 2023年8月4日
    00
  • MVC Ajax Helper或Jquery异步加载部分视图

    MVC Ajax Helper或Jquery异步加载部分视图是一种常用的前端技术,可以实现页面的动态局部更新和部分重刷,提高用户体验并减少服务器压力。下面是具体的实现攻略。 MVC Ajax Helper 什么是MVC Ajax Helper? MVC Ajax Helper是一种ASP.NET MVC框架提供的工具,可以帮助我们轻松实现Ajax请求和动态局…

    other 2023年6月25日
    00
  • Android手机获取root权限并实现关机重启功能的方法

    Android手机获取root权限并实现关机重启功能的方法 在Android系统中,root权限是最高权限,可以对设备进行任意修改和操作。在某些情况下,需要获取root权限才能执行一些高级的操作,例如实现关机重启等功能。下面是获取Android手机root权限并实现关机重启功能的详细攻略。 步骤一:获取root权限 确认手机型号和系统版本:在获取root权限…

    other 2023年6月27日
    00
  • js如何将字符串数字转换成long

    JS如何将字符串数字转换成long 在 JavaScript 中,由于其中的数值类型都是基于64位的浮点数实现的,因此 JavaScript 中没有长整型。然而,在一些情况下,我们可能需要处理比 JavaScript 的 Number 类型更大的整数,例如处理大数字计算、密码学应用等。在这些情况下,我们需要使用 BigInt 类型。但有时候我们也会遇到需要将…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部