美文网首页
springboot整合druid数据源,开启监控管理

springboot整合druid数据源,开启监控管理

作者: Planet_2d42 | 来源:发表于2019-04-09 13:41 被阅读0次
    • druid依赖
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid-spring-boot-starter</artifactId>
      <version>1.1.2</version>
    </dependency>
    
    • 添加druid配置类
    @Configuration
    public class DruidConfiguration {
    
        @Bean
        public ServletRegistrationBean statViewServlet() {
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
            // 添加IP白名单(不设置则允许全部)
            servletRegistrationBean.addInitParameter("allow", "");
            // 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
            servletRegistrationBean.addInitParameter("deny", "192.168.25.123");
            // 添加控制台管理用户
            servletRegistrationBean.addInitParameter("loginUsername", "admin");
            servletRegistrationBean.addInitParameter("loginPassword", "admin");
            // 是否能够重置数据
            servletRegistrationBean.addInitParameter("resetEnable", "false");
            return servletRegistrationBean;
        }
    
    
        @Bean
        public FilterRegistrationBean statFilter() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
            // 添加过滤规则
            filterRegistrationBean.addUrlPatterns("/*");
            // 忽略过滤格式
            filterRegistrationBean.addInitParameter("exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,");
            return filterRegistrationBean;
        }
    }
    
    • 启动springb项目,访问/druid,即可登录。

    常见问题,开启监控之后并没有数据,需要在配置文件中加入 spring.datasource.druid.filters=stat,如果需要对url进行监控,某个包下的类进行监控,则需要加入下面的代码。

        @Bean
        public DruidStatInterceptor getDruidStatInterceptor() {
            return new DruidStatInterceptor();
        }
        
        
        @Bean
        @Scope("prototype")
        public JdkRegexpMethodPointcut druidStatPointcut() {
            JdkRegexpMethodPointcut pointcut = new JdkRegexpMethodPointcut();
            pointcut.setPatterns("com.a.*","com.b.*");//改为需要监控的包
            return pointcut;
        }
        
        @Bean
        public DefaultPointcutAdvisor druidStatAdvisor(DruidStatInterceptor druidStatInterceptor, JdkRegexpMethodPointcut druidStatPointcut) {
            DefaultPointcutAdvisor defaultPointAdvisor = new DefaultPointcutAdvisor();
            defaultPointAdvisor.setPointcut(druidStatPointcut);
            defaultPointAdvisor.setAdvice(druidStatInterceptor);
            return defaultPointAdvisor;
        }
    

    相关文章

      网友评论

          本文标题:springboot整合druid数据源,开启监控管理

          本文链接:https://www.haomeiwen.com/subject/jxybiqtx.html