SpringBoot配置Druid数据监控代码实例

 更新时间:2020年06月08日 16:04:01   作者:浮生若梦~  
这篇文章主要介绍了SpringBoot配置Druid数据监控代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

druid,一个为监控而生的数据库连接池,提供可视化界面来查看sql执行情况。

1、pom文件引入druid数据源

<!--druid数据源-->
  <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.1.8</version>
 </dependency>

2、新建一个DrruidConfig配置文件

package com.example.mybatisplus.config;

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;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * druid数据池配置
 */
@Configuration
public class DruidConfig {

  @ConfigurationProperties(prefix = "spring.datasource")
  @Bean
  public DataSource druid(){
    return new DruidDataSource();
  }
  //配置Druid的监控
  //1、配置一个管理后台的Servlet
  @Bean
  public ServletRegistrationBean statViewServlet(){
    ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    Map<String,String> initParams = new HashMap<>();
    //配置登录的账号密码
    initParams.put("loginUsername","admin");
    initParams.put("loginPassword","123456");
//    initParams.put("deny","localhost"); //拒绝谁登录
    //是否能够重置数据.
//    bean.addInitParameter("resetEnable","false");
    bean.setInitParameters(initParams);
    return bean;
  }

  //2、配置一个web监控的filter
  @Bean
  public FilterRegistrationBean webStatFilter(){
    FilterRegistrationBean bean = new FilterRegistrationBean();
    bean.setFilter(new WebStatFilter());
    Map<String,String> initParams = new HashMap<>();
    initParams.put("exclusions","*.html,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
    bean.setInitParameters(initParams);
    bean.setUrlPatterns(Arrays.asList("/*"));
    return bean;
  }
}

3、yml文件配置

spring:
 datasource:
  schema:
   - classpath:schema.sql
  initialization-mode: ALWAYS
  username: root
  password: root
  url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
  driver-class-name: com.mysql.cj.jdbc.Driver
  #  type: com.alibaba.druid.pool.DruidDataSource
  initialSize: 5
  minIdle: 5
  maxActive: 20
  maxWait: 60000
  timeBetweenEvictionRunsMillis: 60000
  minEvictableIdleTimeMillis: 300000
  validationQuery: SELECT 1 FROM DUAL
  testWhileIdle: true
  testOnBorrow: false
  testOnReturn: false
  poolPreparedStatements: true
  #  配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
  filters: stat,wall
  maxPoolPreparedStatementPerConnectionSize: 20
  useGlobalDataSourceStat: true
  connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot接口参数校验(Bean Validation)实战指南

    SpringBoot接口参数校验(Bean Validation)实战指南

    在开发接口时,参数校验是必不可少的环节:前端传参是否为空、格式是否正确、数值是否合法,都需要后端严格校验,否则很容易出现脏数据、程序异常,SpringBoot 官方推荐使用 Bean Validation,今天就来介绍一下基础注解、实战使用,需要的朋友可以参考下
    2026-03-03
  • 一文带你搞懂Java中Synchronized和Lock的原理与使用

    一文带你搞懂Java中Synchronized和Lock的原理与使用

    这篇文章主要为大家详细介绍了Java中Synchronized和Lock的原理与使用,文中的示例代码讲解详细,对我们学习Java有一定的帮助,需要的可以参考一下
    2023-04-04
  • 浅谈java中的路径表示

    浅谈java中的路径表示

    下面小编就为大家带来一篇浅谈java中的路径表示。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 浅谈Java中GuavaCache返回Null的注意事项

    浅谈Java中GuavaCache返回Null的注意事项

    Guava在实际的Java后端项目中应用的场景还是比较多的,比如限流,缓存,容器操作之类的,本文主要介绍了GuavaCache返回Null的注意事项,感兴趣的可以了解一下
    2021-10-10
  • Spring boot2X Consul如何通过RestTemplate实现服务调用

    Spring boot2X Consul如何通过RestTemplate实现服务调用

    这篇文章主要介绍了spring boot2X Consul如何通过RestTemplate实现服务调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • netty服务端处理请求联合pipeline分析

    netty服务端处理请求联合pipeline分析

    这篇文章主要为大家介绍了netty服务端处理请求联合pipeline示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Java线程池并发执行多个任务方式

    Java线程池并发执行多个任务方式

    这篇文章主要介绍了Java线程池并发执行多个任务方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java设计模式之GOF23全面讲解

    Java设计模式之GOF23全面讲解

    这篇文章主要介绍了Java设计模式之GOF23全面讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Java跳出多重嵌套循环代码实例

    Java跳出多重嵌套循环代码实例

    这篇文章主要介绍了Java跳出多重嵌套循环,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • java实现将数字转换成人民币大写

    java实现将数字转换成人民币大写

    前面给大家介绍过使用javascript,php,c#,python等语言实现人民币大写格式化,这篇文章主要介绍了java实现将数字转换成人民币大写的代码,非常的简单实用,分享给大家,需要的朋友可以参考下
    2015-04-04

最新评论