如何让SpringBoot应用中的Druid监控页不再显示底部广告?

2026-04-02 13:431阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计405个文字,预计阅读时间需要2分钟。

如何让SpringBoot应用中的Druid监控页不再显示底部广告?

关于在SpringBoot中整合Druid的教程,以下为简化后的内容:

SpringBoot整合Druid教程:五十五、SpringBoot集成Druid数据库连接池+默认Druid监控页面

如何让SpringBoot应用中的Druid监控页不再显示底部广告?

关于在SpringBoot中整合Druid的教程在上一篇文章五十五、SpringBoot整合Druid数据库连接池默认Druid的监控页面

关于在 SpringBoot 中整合 Druid 的教程在上一篇文章五十五、SpringBoot整合Druid数据库连接池

默认 Druid 的监控页面底部会有一块儿广告位如图 我们如果不想显示这一块的话可以对其进行过滤掉具体配置如下

import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;import com.alibaba.druid.util.Utils;import org.springframework.boot.autoconfigure.AutoConfigureAfter;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.servlet.*;import java.io.IOException;/*** 去除druid底部的广告配置类*/ConfigurationConditionalOnWebApplicationAutoConfigureAfter(DruidDataSourceAutoConfigure.class)ConditionalOnProperty(name "spring.datasource.druid.stat-view-servlet.enabled", havingValue "true", matchIfMissing true)public class DruidConfigurer {/*** 除去druid页面底部的广告** param properties* return*/SuppressWarnings({"rawtypes", "unchecked"})Beanpublic 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() {Overridepublic void init(FilterConfig filterConfig) throws ServletException {}Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {chain.doFilter(request, response);// 重置缓冲区响应头不会被重置response.resetBuffer();// 获取common.jsString text Utils.readFromResource(filePath);// 正则替换banner, 除去底部的广告信息text text.replaceAll("", "");text text.replaceAll("powered.*?shrek.wang", "");response.getWriter().write(text);}Overridepublic void destroy() {}};FilterRegistrationBean registrationBean new FilterRegistrationBean();registrationBean.setFilter(filter);registrationBean.addUrlPatterns(commonJsPattern);return registrationBean;}}

需要注意

  • ConditionalOnWebApplication当Spring为web服务时才使注解的类生效
  • AutoConfigureAfter在加载配置的类之后再加载当前类
  • ConditionalOnProperty 注解可以根据具体的值来控制该配置是否生效
  • 去除广告之后的效果如下 如您在阅读中发现不足欢迎留言

    本文共计405个文字,预计阅读时间需要2分钟。

    如何让SpringBoot应用中的Druid监控页不再显示底部广告?

    关于在SpringBoot中整合Druid的教程,以下为简化后的内容:

    SpringBoot整合Druid教程:五十五、SpringBoot集成Druid数据库连接池+默认Druid监控页面

    如何让SpringBoot应用中的Druid监控页不再显示底部广告?

    关于在SpringBoot中整合Druid的教程在上一篇文章五十五、SpringBoot整合Druid数据库连接池默认Druid的监控页面

    关于在 SpringBoot 中整合 Druid 的教程在上一篇文章五十五、SpringBoot整合Druid数据库连接池

    默认 Druid 的监控页面底部会有一块儿广告位如图 我们如果不想显示这一块的话可以对其进行过滤掉具体配置如下

    import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;import com.alibaba.druid.util.Utils;import org.springframework.boot.autoconfigure.AutoConfigureAfter;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.servlet.*;import java.io.IOException;/*** 去除druid底部的广告配置类*/ConfigurationConditionalOnWebApplicationAutoConfigureAfter(DruidDataSourceAutoConfigure.class)ConditionalOnProperty(name "spring.datasource.druid.stat-view-servlet.enabled", havingValue "true", matchIfMissing true)public class DruidConfigurer {/*** 除去druid页面底部的广告** param properties* return*/SuppressWarnings({"rawtypes", "unchecked"})Beanpublic 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() {Overridepublic void init(FilterConfig filterConfig) throws ServletException {}Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {chain.doFilter(request, response);// 重置缓冲区响应头不会被重置response.resetBuffer();// 获取common.jsString text Utils.readFromResource(filePath);// 正则替换banner, 除去底部的广告信息text text.replaceAll("", "");text text.replaceAll("powered.*?shrek.wang", "");response.getWriter().write(text);}Overridepublic void destroy() {}};FilterRegistrationBean registrationBean new FilterRegistrationBean();registrationBean.setFilter(filter);registrationBean.addUrlPatterns(commonJsPattern);return registrationBean;}}

    需要注意

  • ConditionalOnWebApplication当Spring为web服务时才使注解的类生效
  • AutoConfigureAfter在加载配置的类之后再加载当前类
  • ConditionalOnProperty 注解可以根据具体的值来控制该配置是否生效
  • 去除广告之后的效果如下 如您在阅读中发现不足欢迎留言