Springboot项目配置druid监控页面

文章介绍了如何在项目中引入阿里巴巴的Druid数据源,包括添加Maven依赖,配置后台监控的账号密码,以及通过编写Filter去除监控页面的广告。此外,还展示了前端HTML和JavaScript代码用于展示数据监控页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 引入maven依赖

<!-- 引用阿里巴巴的druid数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.16</version>
        </dependency>

config文件添加账号密码配置

 //后台监控
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");

        //后台需要有人登录,账号密码配置
        HashMap<String, String> initParameters = new HashMap<>();
        //增加配置
        initParameters.put("loginUsername","admin");
        initParameters.put("loginPassword","123456");

        //允许谁可以访问
        initParameters.put("allow","");

        //禁止谁访问     initParameters.put("xiaowu","192.168.1.1");


        bean.setInitParameters(initParameters);//设置初始化参数
        return bean;
    }

去除监控页面广告(阿里广告)

 /**
     * 去除监控页面底部的广告
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Bean
    @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true")
    public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties)
    {
        // 获取web监控页面的参数
        DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
        // 提取common.js的配置路径
        String commonJsPattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/js/common.js";
        //String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");
        final String filePath = "support/http/resources/js/common.js";
        // 创建filter进行过滤
        Filter filter = new Filter()
        {
            @Override
            public void init(javax.servlet.FilterConfig filterConfig) throws ServletException
            {
            }
            @Override
            public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                    throws IOException, ServletException
            {
                chain.doFilter(request, response);
                // 重置缓冲区,响应头不会被重置
                response.resetBuffer();
                // 获取common.js
                String text = Utils.readFromResource(filePath);
                // 正则替换banner, 除去底部的广告信息
                text = text.replace("this.buildFooter();", "");
                //text = text.replaceAll("<a.*?banner\"></a><br/>", "");
                //text = text.replaceAll("powered.*?shrek.wang</a>", "");
                response.getWriter().write(text);
            }
            @Override
            public void destroy()
            {
            }
        };
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(filter);
        registrationBean.addUrlPatterns(commonJsPattern);
        return registrationBean;
    }

前端HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据监控</title>
    <link rel="stylesheet" href="../plugin/layui-v2.5.5/css/layui.css">
    <link rel="stylesheet" href="../plugin/font-awesome/css/font-awesome.css">

</head>
<style>
    /*防止文档渲染时有明显颜色差异*/

    .layui-container{width: 100%;height: 100% ;padding: 15px;}

</style>
<body>
<div class="layui-container" style="height: 100%;width: 100%;overflow: hidden">
    <div class="layui-row"> <iframe style="height: 100%;width: 100%;" id="iframeId" frameborder="0" class="ifr"></iframe></div>

</div>


<script src="../plugin/jquery/jquery-2.1.1.min.js"></script>
<script src="../plugin/jquery/jquery-ui.js"></script>
<script src="../plugin/jquery/jquery.cookie.js"></script>
<script src="../plugin/layui-v2.5.5/layui.all.js"></script>
<script src="../js/statics.js"></script>
<script src="js/statics.js"></script>
<script src="js/index.js"></script>
<script src="js/sjjk.js"></script>

</body>
</html>

前端js


$(document).ready(function () {
    showDataDb();
});

function showDataDb(){
    let iframe = document.getElementById("iframeId");
    iframe.src = SERVICE_URL+"druid/login.html";
    let body = document.body;
    //body.style.backgroundColor = "#ffffff";//设置背景色
    /*$.ajax({
            url:SERVICE_URL+"monitor/data",
        //url:SERVICE_URL+"monitor/getInfo",
            type:"get",
            async:true,
            //contentType:"multipart/form-data",
            success:function (result){
                window.location.href = 'about:blank';
                document.write(result);
              
                document.close();
               

            }
        }
    )*/
}

<think>好的,我现在需要帮助用户解决在Spring Boot项目配置Druid监控的问题。首先,我得回忆一下DruidSpring Boot中的配置步骤和相关注意事项。用户提到了引用内容,我需要结合这些引用来组织答案。 首先,引用[1]提到要添加druid-spring-boot-starter依赖,这是基础。所以第一步应该是添加依赖到pom.xml。用户可能不知道具体依赖名称,需要给出正确的groupId和artifactId。 接下来,引用[3]提到了配置属性和监控功能。Druid监控通常需要配置一些参数,比如初始化大小、最大连接数等,这些应该在application.yml或application.properties中设置。同时,监控页面需要开启,可能需要配置statViewServlet和webStatFilter。这里需要注意配置项的格式是否正确,比如url-pattern和allow等参数。 然后,用户可能遇到配置不生效的问题,比如引用[2]中提到自定义数据源不生效,这可能是因为配置项的位置不对或者缺少必要的注解。需要提醒用户在配置时确保属性前缀正确,并且启用监控功能的相关配置。 另外,监控页面访问需要安全设置,比如登录账号和密码,这些也需要在配置中体现。同时,可能需要排除一些静态资源的拦截,配置exclusions。 最后,测试步骤也很重要,用户需要知道如何验证配置是否成功,比如查看日志中的初始化信息,访问监控页面,检查数据源状态等。引用[3]中的日志示例可以说明成功的情况,所以应该包含在回答中。 可能的问题点包括依赖未正确添加、配置项错误、监控Servlet未配置等。需要确保每一步都详细说明,避免用户遗漏关键步骤。同时,生成的相关问题要围绕常见配置问题、优化和安全设置展开,帮助用户进一步了解。</think>### Spring BootDruid监控配置步骤 #### 1. 添加依赖 在`pom.xml`中添加Druid官方提供的Spring Boot Starter依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.16</version> <!-- 使用最新版本 --> </dependency> ``` 此依赖包含连接池核心功能与监控组件[^1]。 #### 2. 配置数据源 在`application.yml`中配置基础参数与监控参数: ```yaml spring: datasource: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/test username: root password: root druid: # 连接池核心配置 initial-size: 5 min-idle: 5 max-active: 20 # 监控配置 stat-view-servlet: enabled: true # 开启监控页面 url-pattern: /druid/* login-username: admin login-password: admin web-stat-filter: enabled: true url-pattern: /* exclusions: "*.js,*.gif,*.jpg,/druid/*" filters: stat,wall # 启用统计和防火墙功能 ``` 配置完成后可通过`http://localhost:8080/druid`访问监控页面[^3]。 #### 3. 验证配置 检查启动日志确认初始化状态: ``` 2023-07-20 14:30:45 INFO [main] c.a.d.s.b.a.DruidDataSourceAutoConfigure Init DruidDataSource 2023-07-20 14:30:45 INFO [main] com.alibaba.druid.pool.DruidDataSource {dataSource-1} inited ``` 若日志出现上述信息表示配置成功。 #### 4. 高级配置项 ```yaml spring: datasource: druid: # 连接泄露检测 remove-abandoned: true remove-abandoned-timeout: 180 # SQL防火墙 wall: config: delete-allow: false ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值