zoukankan      html  css  js  c++  java
  • spring-boot 配置Druid监控

    介绍

    在开发过程中,当我们调试一个程序,我们可能希望查看一个SQL语句的执行时间,我们也可能想去看一个请求的请求响应时间。如果你使用的数据库连接池是Druid。那么你就不需要在代码中,嵌入大量的System.out.print(System.currentTimeMillis())或者logger.debug()了,而是直接配置使用Druid提供的监控平台。

    POM依赖

    <!-- Druid连接池 -->
    <dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>druid-spring-boot-starter</artifactId>
    	<version>1.1.9</version>
    </dependency>
    

    配置类

    
    import com.alibaba.druid.pool.DruidDataSource;
    import com.alibaba.druid.support.http.StatViewServlet;
    import com.alibaba.druid.support.http.WebStatFilter;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    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.sql.DataSource;
    
    @Configuration
    public class DruidConfig {
        @Bean
        public ServletRegistrationBean druidServlet() {// 主要实现web监控的配置处理
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
                    new StatViewServlet(), "/druid/*");//表示进行druid监控的配置处理操作
            //servletRegistrationBean.addInitParameter("allow", "127.0.0.1,192.168.202.233");//白名单
            //servletRegistrationBean.addInitParameter("deny", "192.168.202.234");//黑名单
            servletRegistrationBean.addInitParameter("loginUsername", "admin");//用户名
            servletRegistrationBean.addInitParameter("loginPassword", "123456");//密码
            servletRegistrationBean.addInitParameter("resetEnable", "false");//是否可以重置数据源
            return servletRegistrationBean;
        }
     
        @Bean    //监控
        public FilterRegistrationBean filterRegistrationBean() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            filterRegistrationBean.setFilter(new WebStatFilter());
            filterRegistrationBean.addUrlPatterns("/*");//所有请求进行监控处理
            filterRegistrationBean.addInitParameter("exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");//排除静态资源访问以及德鲁伊本身接口
            return filterRegistrationBean;
        }
     
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource.druid")
        public DataSource druidDataSource() {
            return new DruidDataSource();
        }
    }
    

    访问监控页面

    监控页面

  • 相关阅读:
    ES2017中的修饰器Decorator
    ES6中的模块
    代理(Proxy)和反射(Reflection)
    ES2017中的async函数
    ES6数字扩展
    Promise和异步编程
    ES6定型数组
    ES6数组扩展
    ES6中的类
    ES6中的Set和Map集合
  • 原文地址:https://www.cnblogs.com/yiweiblog/p/12692916.html
Copyright © 2011-2022 走看看