springboot2.x配置druid sql监控

  后段接口响应慢,通常我们就需要优化代码和sql,如果项目中使用druid连接池,那么我们可以利用其提供的sql监控功能,来帮助我们快速定位慢sql已经sql执行次数等问题,springboot2之后,durid监控配置变的更简单了,不需要额外的代码,只需要添加配置即可。整个项目配置如下:

  依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

  application.yml

spring:
  datasource:
    druid:
      url: jdbc:postgresql://127.0.0.1:5432/test01?characterEncoding=utf-8
      username: admin
      password: 123456
      driver-class-name: org.postgresql.Driver
      initial-size: 1
      max-active: 20
      max-wait: 6000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=2000
      min-idle: 1
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: select 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      web-stat-filter:
        enabled: true
        url-pattern: "/*"
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        session-stat-max-count: 1000
        session-stat-enable: true
        profile-enable: true
      stat-view-servlet:
        enabled: true
        url-pattern: "/druid/*"
        login-username: root
        login-password: root
        allow: 127.0.0.1
        reset-enable: true

    type: com.alibaba.druid.pool.DruidDataSource
    url:
    username: admin
    password: 123456
    driver-class-name:
    filters: stat,wall,slf4j
    maxActive: 20
  jpa:
    database: postgresql
    show-sql: true
    properties:
      hibernate:
        temp:
          use_jdbc_metadata_defaults: false

  测试添加的相关类

package com.junlin.druid.Entity;

import javax.persistence.*;
import java.io.Serializable;

@Entity
@Table(name="newtable")
public class DemoEntity implements Serializable {

    @Id
    @GeneratedValue
    @Column(name="id")
    private int id;

    @Column(name="name")
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
package com.junlin.druid.Dao;

import com.junlin.druid.Entity.DemoEntity;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface DemoJPA  extends JpaRepository<DemoEntity,Integer> {

    List<DemoEntity> findByName(String name);
}
package com.junlin.druid.Controller;

import com.junlin.druid.Dao.DemoJPA;
import com.junlin.druid.Entity.DemoEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class DemoController {

    @Autowired
    private DemoJPA demoJPA;

    @GetMapping("/findName")
    public Object findEntity(String name){
        List<DemoEntity> list = demoJPA.findByName(name);
        return list;
    }
}

  启动项目,访问localhost:8080/druid/,进入登陆页面输入在application.yml配置好的用户和密码(demo中都是root),即可看到监控页面

  访问一下我们准备好的接口,执行几次sql查询,在监控页面点看sql监控页面,就能看到我们的sql执行情况

  其它相关的配置以及页面相关内容可以参考druid官网文档,地址https://github.com/alibaba/druid/wiki/常见问题

原文地址:https://www.cnblogs.com/hhhshct/p/11378770.html

时间: 2024-07-31 19:24:50

springboot2.x配置druid sql监控的相关文章

017 配置Druid的监控

一 . 概述 前面我们配置Druid的基本属性,本节我们来配置一下Druid的监控方面的配置. 二 . 基本配置 在Druid之中,我们需要配置的主要就是两个方面: (1)一个是Servlet,进行Druid的管理的servlet (2)另外一个就是Filter,对请求进行监控的过滤器. @Configuration public class DataSourceConfig { @Bean @ConfigurationProperties("spring.datasource") p

SSM项目下Druid连接池的配置及数据源监控的使用

一,连接池的配置 在pom.xml中添加,druid的maven信息 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.21</version> </dependency> 数据源设置: 要在init-method设置init方法,才能在监控页面中查看数据源等操作 <!--使用dr

SpringBoot学习--07配置Druid数据库连接池

Druid介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快). Druid的作用 1.充当数据库连接池.2.可以监控数据库访问性能3.获得SQL执行日志 配置参数 和其它连接池一样Druid的DataSource类为:com.alibaba.druid.pool.DruidDat

2511-Druid监控功能的深入使用与配置-如何记录监控数据(基于logback)

Druid的监控很强大,但可惜的是监控数据是存在内存中的,需求就是定时把监控数据记录下来,以日志文件的形式或者数据库入库. 记录两种方式: 数据库入库 logback形式记录 原理(重点) 如果仅仅想记录sql的监控,可以自己重写DruidDataSourceStatLogger的log方法,这个方式是Druid记录日志的默认接口,在此略过. 使用内部接口,直接获取元数据. Druid包中有个DruidStatService类,这个是监控的业务类. 其中有个service方法, public S

Spring Boot 配置Druid数据源

Spring Boot 配置Druid数据源 Druid是阿里巴巴的一个开源项目,使用这个数据源的好处就是可以使用监控功能,提供了一个简单的后台,可以监控数据源的数据 配置方式 导入坐标 <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</art

nutz配置druid监控

druid 提供了一个web端的监控页面, 搭建起来不算麻烦, 建议添加. 打开web.xml, 在nutz的filter之前, 加入Web监控的配置 <filter> <filter-name>DruidWebStatFilter</filter-name> <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class> <init-param> &

springboot中使用druid和监控配置

如果想要监控自己的项目的访问情况及查看配置信息,druid是一个很好的选择,可能你会问druid是什么?有什么用?优点是什么? Druid简介 Druid是阿里巴巴开源的数据库连接池,号称是Java语言中最好的数据库连接池,能够提供强大的监控和扩展功能.GitHub地址:https://github.com/alibaba/druid.Druid有以下优点:1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库

springboot2.0配置连接池(hikari、druid)

springboot2.0配置连接池(hikari.druid) 原文链接:https://www.cnblogs.com/blog5277/p/10660689.html 原文作者:博客园--曲高终和寡 *******************如果你看到这一行,说明爬虫在本人还没有发布完成的时候就抓走了我的文章,导致内容不完整,请去上述的原文链接查看原文**************** springboot2.0之后,自带了一个号称全世界最快的连接池hikari,直接在配置文件里输入以下配置即可

SpringBoot:spring boot使用Druid和监控配置

Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能. Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource 业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和分析功能,所以这也是大家都选择使用它的原因. 下面来说明如何在 spring Boot 中配置使用Druid 整体步骤: (1)    ——   Druid简