當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot项目去除druid监控的底部广告
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot项目去除druid监控的底部广告
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、阿里Druid廣告的介紹
- 二、引入Druid的Starter依賴
- 三、編寫配置類,進行廣告的去除
- 四 、啟動項目進行測試
- 五、原理說明
一、阿里Druid廣告的介紹
如果使用的是阿里Druid的數據庫連接池,那么會自帶一個數據庫的監控頁面. 但是其頁面底部會有阿里的廣告,如下圖所示,并且在其最下方的作者申明中, 有一個作者的鏈接,會直接到澳門賭場的頁面,這是極其不友好的.因此需要進行去除
二、引入Druid的Starter依賴
對于SpringBoot項目.阿里druid有其專門的druid-spring-boot-starter版本, 我使用的是1.1.13版本
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.13</version></dependency>三、編寫配置類,進行廣告的去除
在SpringBoot項目中編寫一個RemoveDruidAdConfig配置類,進行監控頁面廣告的去除
package com.gblfy.web.core.config;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;/*** @author gblfy* @ClassNme RemoveDruidAdConfig* @Description Druid 底部廣告去除* @Date 2019/9/8 8:38* @version1.0*/ @Configuration @ConditionalOnWebApplication @AutoConfigureAfter(DruidDataSourceAutoConfigure.class) @ConditionalOnProperty(name = "spring.datasource.druid.stat-view-servlet.enabled", havingValue = "true", matchIfMissing = true) public class RemoveDruidAdConfig {/*** 方法名: removeDruidAdFilterRegistrationBean* 方法描述: 除去頁面底部的廣告** @param properties* @return org.springframework.boot.web.servlet.FilterRegistrationBean* @throws*/@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("<a.*?banner\"></a><br/>", "");text = text.replaceAll("powered.*?shrek.wang</a>", "");response.getWriter().write(text);}@Overridepublic void destroy() {}};FilterRegistrationBean registrationBean = new FilterRegistrationBean();registrationBean.setFilter(filter);registrationBean.addUrlPatterns(commonJsPattern);return registrationBean;} }四 、啟動項目進行測試
再次啟動項目,可以看到其底部的廣告信息已經沒有了.
五、原理說明
之所以底部有廣告,是因為其引入的druid jar包的common.js中的內容
面的這段footer的內容, 就是廣告的來源.
在RemoveDruidAdConfig 配置類中就是使用過濾器過濾common.js的請求,重新處理后用正則替換相關的廣告代碼片段.
總結
以上是生活随笔為你收集整理的SpringBoot项目去除druid监控的底部广告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业实战_19_MyCat初始化ZK并配
- 下一篇: PLSQL 设置布局