当前位置 : 主页 > 网络编程 > 其它编程 >

【SpringBoot】57、SpringBoot去掉Druid监控页底部广告

来源:互联网 收集:自由互联 发布时间:2023-07-02
关于在SpringBoot中整合Druid的教程在上一篇文章【SpringBoot】五十五、SpringBoot整合Druid数据库连接池默认Druid的监控页面 关于在 SpringBoot 中整合 Druid 的教程在上一篇文章【SpringBoot】五十五
关于在SpringBoot中整合Druid的教程在上一篇文章【SpringBoot】五十五、SpringBoot整合Druid数据库连接池默认Druid的监控页面

关于在 SpringBoot 中整合 Druid 的教程在上一篇文章【SpringBoot】五十五、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 注解可以根据具体的值来控制该配置是否生效
  • 去除广告之后的效果如下 在这里插入图片描述 如您在阅读中发现不足欢迎留言

    上一篇:列表框消息
    下一篇:没有了
    网友评论