Druid监控页面配置用户密码、去除Ad

这篇具有很好参考价值的文章主要介绍了Druid监控页面配置用户密码、去除Ad。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.druid依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.16</version>
</dependency>

 监控页面访问路径:http://localhost:21018/context-path/druid/index.html

2.Druid监控页面设置用户密码

@Bean
	public ServletRegistrationBean statViewServlet() {
		final ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
		// 配置druid参数
		Map<String, String> initParams = new HashMap<>(16);
		// 默认访问用户密码 admin:admin
		initParams.put("loginUsername", "admin");
		initParams.put("loginPassword", "qwer1234!@#$");
		// 允许访问的ip
		initParams.put("allow", "127.0.0.1");
		// 黑名单ip,优先级比allow配置高
		initParams.put("deny", "");
		servletRegistrationBean.setInitParameters(initParams);
		return servletRegistrationBean;
	}

Druid监控页面配置用户密码、去除Ad

 3.Druid去除底部Ad(广告)

@Bean
	public FilterRegistrationBean removeDruidAdFilterRegistrationBean(DruidStatProperties properties) {
		// 获取web监控页面的参数
		DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
		// 提取common.js的配置路径
		String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
		String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");

		final String filePath = "support/http/resources/js/common.js";
		// 创建filter进行过滤
		Filter filter = new Filter() {
			@Override
			public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
				filterChain.doFilter(servletRequest, servletResponse);
				// 重置缓冲区,响应头不会被重置
				servletResponse.resetBuffer();
				// 获取common.js 
				// import com.alibaba.druid.util.Utils;
				String text = Utils.readFromResource(filePath);

				// 正则替换banner, 除去底部的广告信息
				text = text.replaceAll("<a.*?banner\"></a><br/>", "");
				text = text.replaceAll("powered.*?shrek.wang</a>", "");
				servletResponse.getWriter().write(text);
			}

		};

		FilterRegistrationBean registrationBean = new FilterRegistrationBean();
		registrationBean.setFilter(filter);
		registrationBean.addUrlPatterns(commonJsPattern);

		return registrationBean;
	}

Druid监控页面配置用户密码、去除Ad

 Druid监控页面配置用户密码、去除Ad

Druid监控页面配置用户密码、去除Ad 嵌入的广告:文章来源地址https://www.toymoban.com/news/detail-504985.html

buildFooter : function() {

			var html ='<footer class="footer">'+
					  '    		<div class="container">'+
					  '<a href="https://render.alipay.com/p/s/taobaonpm_click/druid_banner_click" target="new"><img src="https://render.alipay.com/p/s/taobaonpm_click/druid_banner"></a><br/>' +
				  	  '	powered by <a href="https://github.com/alibaba/" target="_blank">Alibaba</a> & sandzhang & <a href="http://melin.iteye.com/" target="_blank">melin</a> & <a href="https://github.com/shrekwang" target="_blank">shrek.wang</a>'+
				  	  '			</div>'+
					  ' </footer>';
			$(document.body).append(html);
		},

4. 源码

import com.alibaba.druid.filter.logging.Slf4jLogFilter;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.alibaba.druid.util.Utils;
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;

import javax.servlet.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * @author Benjamin
 * @version 1.0
 * @date 2023/3/6 10:24
 */
@Configuration
public class DruidConfig {

	/**
	* @author Benjamin
	* @date 2023/3/6 10:42:51
	* @version 1.0.0
	* @description 配置Druid监控的Servlet
	* @return ServletRegistrationBean
	*/
	@Bean
	public ServletRegistrationBean statViewServlet() {
		final ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
		// 配置druid参数
		Map<String, String> initParams = new HashMap<>(16);
		// 默认访问用户密码 admin:admin
		initParams.put("loginUsername", "admin");
		initParams.put("loginPassword", "qwer1234!@#$");
		// 允许访问的ip
		initParams.put("allow", "127.0.0.1");
		// 黑名单ip,优先级比allow配置高
		initParams.put("deny", "");
		servletRegistrationBean.setInitParameters(initParams);
		return servletRegistrationBean;
	}

	/**
	* @author Benjamin
	* @date 2023/3/6 11:07:47
	* @version 1.0.0	
	* @description 配置druid监控的Filter
	* @return FilterRegistrationBean
	*/
	@Bean
	public FilterRegistrationBean webStatFilter() {
		FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
		filterRegistrationBean.setFilter(new WebStatFilter());
		Map<String, String> initParams = new HashMap<>(16);
		initParams.put("exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");

		filterRegistrationBean.setInitParameters(initParams);

		filterRegistrationBean.setUrlPatterns(Arrays.asList("/druid/*"));
		filterRegistrationBean.setEnabled(true);
		return filterRegistrationBean;
	}

	/**
	* @author Benjamin
	* @date 2023/3/6 13:58:21
	* @version 1.0.0
	* @description 配置慢sql拦截器
	* @return StatFilter
	*/
	@Bean
	public StatFilter statFilter() {
		StatFilter statFilter = new StatFilter();
		// 慢sql时间设置,即执行时间大于2000毫秒都是慢sql
		statFilter.setSlowSqlMillis(2000L);
		statFilter.setLogSlowSql(true);
		statFilter.setMergeSql(true);
		return statFilter;
	}

	/**
	* @author Benjamin
	* @date 2023/3/6 16:18:48
	* @version 1.0.0
	* @description 配置Druid日志
	* @return com.alibaba.druid.filter.logging.Slf4jLogFilter
	*/
	@Bean
	public Slf4jLogFilter logFilter() {
		Slf4jLogFilter slf4jLogFilter = new Slf4jLogFilter();
		slf4jLogFilter.setDataSourceLogEnabled(true);
		slf4jLogFilter.setStatementExecutableSqlLogEnable(true);
		return slf4jLogFilter;
	}

	/**
	* @author Benjamin
	* @date 2023/3/8 10:27:24
	* @version 1.0.0
	* @description 过滤掉Druid监控页面Ad(广告)
	* @param properties
	* @return org.springframework.boot.web.servlet.FilterRegistrationBean
	*/
	@Bean
	public FilterRegistrationBean removeDruidAdFilterRegistrationBean(DruidStatProperties properties) {
		// 获取web监控页面的参数
		DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
		// 提取common.js的配置路径
		String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
		String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");

		final String filePath = "support/http/resources/js/common.js";
		// 创建filter进行过滤
		Filter filter = new Filter() {
			@Override
			public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
				filterChain.doFilter(servletRequest, servletResponse);
				// 重置缓冲区,响应头不会被重置
				servletResponse.resetBuffer();
				// 获取common.js
				String text = Utils.readFromResource(filePath);

				// 正则替换banner, 除去底部的广告信息
				text = text.replaceAll("<a.*?banner\"></a><br/>", "");
				text = text.replaceAll("powered.*?shrek.wang</a>", "");
				servletResponse.getWriter().write(text);
			}

		};

		FilterRegistrationBean registrationBean = new FilterRegistrationBean();
		registrationBean.setFilter(filter);
		registrationBean.addUrlPatterns(commonJsPattern);

		return registrationBean;
	}


}

到了这里,关于Druid监控页面配置用户密码、去除Ad的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot + Druid 实现监控 MySQL 性能,简单又实用!

    来源:blog.csdn.net/lvoelife/article/details/128092586 我们都使用过连接池,比如 C3P0,DBCP,hikari, Druid ,虽然HikariCP的速度稍快,但Druid能够提供强大的监控和扩展功能,也是阿里巴巴的开源项目。 Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,

    2024年02月11日
    浏览(43)
  • druid配置详解

    druid配置详解 属性 说明 建议值 url 数据库的jdbc连接地址。一般为连接oracle/mysql。示例如下: mysql : jdbc:mysql://ip:port/dbname?option1option2… oracle : jdbc:oracle:thin:@ip:port:oracle_sid username 登录数据库的用户名 password 登录数据库的用户密码 initialSize 启动程序时,在连接池中初始化多少个

    2024年02月13日
    浏览(46)
  • Springboot+Druid配置多数据源

    Spring的多数据源支持—AbstractRoutingDataSource,AbstractRoutingDataSource定义了抽象的determineCurrentLookupKey方法,子类实现此方法,来确定要使用的数据源 Druid 实现多数据源支持,核心是Overwrite AbstractRoutingDataSource 的 determineCurrentLookupKey 方法 以springboot框架为基础使用aop注解的方式依赖

    2024年02月11日
    浏览(52)
  • SpringBoot整合Druid配置多数据源

    目录 1.初始化项目 1.1.初始化工程 1.2.添加依赖 1.3.配置yml文件 1.4.Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹 1.5.配置使用数据源 1.5.1.注解方式 1.5.2.基于AOP手动实现多数据源原生的方式 2.结果展示 Mybatis-Plus:简介 | MyBatis-Plus (baomidou.com) 在正式开始之前,先初始

    2024年02月01日
    浏览(54)
  • springboot整合druid及多数据源配置

    本篇主要分两部分 ①springboot整合druid的代码配置,以及druid的监控页面演示;②对实际场景中多数据源的配置使用进行讲解。 可以用idea快速生成一个可运行的demo工程,具体可以参考如何快速创建springboot项目 主要用到的依赖如下:  配置数据库需要的配置文件application.yml( 注

    2024年02月12日
    浏览(47)
  • springboot实现多数据源配置(Druid/Hikari)

    使用springboot+mybatis-plus+(Druid/Hikari)实现多数据源配置 操作步骤: 引入相应的maven坐标 编写mybatis配置,集成mybatis或mybatis-plus(如果已集成可跳过) 编写数据源配置类 编写注解,并通过aop进行增强(编写数据源切换代码) 类或方法中使用注解,对数据源进行切换 第一步:

    2024年02月13日
    浏览(52)
  • Springboot+dynamic-datasource+Druid数据库配置加密

    Springboot+mybatis-plus+dynamic-datasource+Druid数据库配置加密 背景 生产环境中, 为了保密,我们希望将数据库密码加密, 甚至用户名和jdbc连接串加密。本章我们使用由苞米豆(baomidou)团队开发的 dynamic-datasource 多数据源组件自带的加密工具实现数据库配置加密 从 dynamic-datasource-star

    2024年02月04日
    浏览(44)
  • springboot配置自定义数据源(Druid德鲁伊)的步骤。

    今天和大家分享下在Springboot中配置自定义数据源Druid的两种方法及步骤。 方法一: 1.在pom.xml配置依赖(注释里面的内容) 2.配置自己的数据源设置,我是在yaml文件中配置的,顺便提醒一下,在配置yaml文件的时候缩进问题一定要注意,不然无法读取到就会报错。 spring: datasourc

    2024年02月15日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包