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

  依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5.  
  6. <dependency>
  7. <groupId>com.alibaba</groupId>
  8. <artifactId>druid-spring-boot-starter</artifactId>
  9. <version>1.1.10</version>
  10. </dependency>
  11.  
  12. <dependency>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-starter-data-jpa</artifactId>
  15. </dependency>
  16.  
  17. <dependency>
  18. <groupId>org.postgresql</groupId>
  19. <artifactId>postgresql</artifactId>
  20. <scope>runtime</scope>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-test</artifactId>
  25. <scope>test</scope>
  26. </dependency>

  application.yml

  1. spring:
  2. datasource:
  3. druid:
  4. url: jdbc:postgresql://127.0.0.1:5432/test01?characterEncoding=utf-8
  5. username: admin
  6. password: 123456
  7. driver-class-name: org.postgresql.Driver
  8. initial-size: 1
  9. max-active: 20
  10. max-wait: 6000
  11. pool-prepared-statements: true
  12. max-pool-prepared-statement-per-connection-size: 20
  13. connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=2000
  14. min-idle: 1
  15. time-between-eviction-runs-millis: 60000
  16. min-evictable-idle-time-millis: 300000
  17. validation-query: select 1
  18. test-while-idle: true
  19. test-on-borrow: false
  20. test-on-return: false
  21. web-stat-filter:
  22. enabled: true
  23. url-pattern: "/*"
  24. exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
  25. session-stat-max-count: 1000
  26. session-stat-enable: true
  27. profile-enable: true
  28. stat-view-servlet:
  29. enabled: true
  30. url-pattern: "/druid/*"
  31. login-username: root
  32. login-password: root
  33. allow: 127.0.0.1
  34. reset-enable: true
  35.  
  36. type: com.alibaba.druid.pool.DruidDataSource
  37. url:
  38. username: admin
  39. password: 123456
  40. driver-class-name:
  41. filters: stat,wall,slf4j
  42. maxActive: 20
  43. jpa:
  44. database: postgresql
  45. show-sql: true
  46. properties:
  47. hibernate:
  48. temp:
  49. use_jdbc_metadata_defaults: false

  测试添加的相关类

  1. package com.junlin.druid.Entity;
  2.  
  3. import javax.persistence.*;
  4. import java.io.Serializable;
  5.  
  6. @Entity
  7. @Table(name="newtable")
  8. public class DemoEntity implements Serializable {
  9.  
  10. @Id
  11. @GeneratedValue
  12. @Column(name="id")
  13. private int id;
  14.  
  15. @Column(name="name")
  16. private String name;
  17.  
  18. public int getId() {
  19. return id;
  20. }
  21.  
  22. public void setId(int id) {
  23. this.id = id;
  24. }
  25.  
  26. public String getName() {
  27. return name;
  28. }
  29.  
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33. }
  1. package com.junlin.druid.Dao;
  2.  
  3. import com.junlin.druid.Entity.DemoEntity;
  4. import org.springframework.data.jpa.repository.JpaRepository;
  5.  
  6. import java.util.List;
  7.  
  8. public interface DemoJPA extends JpaRepository<DemoEntity,Integer> {
  9.  
  10. List<DemoEntity> findByName(String name);
  11. }
  1. package com.junlin.druid.Controller;
  2.  
  3. import com.junlin.druid.Dao.DemoJPA;
  4. import com.junlin.druid.Entity.DemoEntity;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.RestController;
  8.  
  9. import java.util.List;
  10.  
  11. @RestController
  12. public class DemoController {
  13.  
  14. @Autowired
  15. private DemoJPA demoJPA;
  16.  
  17. @GetMapping("/findName")
  18. public Object findEntity(String name){
  19. List<DemoEntity> list = demoJPA.findByName(name);
  20. return list;
  21. }
  22. }

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

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

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

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

  1. 6_2.springboot2.x整合Druid和配置数据源监控

    简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss Data ...

  2. springboot2配置druid数据库连接池

    注意配置以下的依赖: <!-- 引入druid数据源--> <dependency> <groupId>com.alibaba</groupId> &l ...

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

    一,连接池的配置 在pom.xml中添加,druid的maven信息 <dependency> <groupId>com.alibaba</groupId> < ...

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

    Druid的监控很强大,但可惜的是监控数据是存在内存中的,需求就是定时把监控数据记录下来,以日志文件的形式或者数据库入库. 记录两种方式: 数据库入库 logback形式记录 原理(重点) 如果仅仅想 ...

  5. 【2.0】SpringBoot2配置Druid数据源及监控

    什么是Druid? Druid首先是Java语言中最好的数据库连接池,也是阿里巴巴的开源项目.Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池, ...

  6. SpringBoot 配置Druid:不显示SQL监控 —(*) property for user to setup

    题外话: SpringBoot整合Druid 请查看https://www.cnblogs.com/JealousGirl/p/druid.html Druid登录后数据源页面.SQL监控等不显示数据 ...

  7. 阿里云sql监控配置-druid

    今天我们说说数据源和数据库连接池,熟悉java开发的同仁应该都了解C3PO,在这里不做过多的赘述了,今天我们说的是阿里DRUID,druid是后起之秀,因为它的优秀很快占领了使用市场,下边我们一起来看 ...

  8. Spring Boot使用Druid和监控配置

    Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource 整体步骤: (1)    --   Druid简单介绍,具体看官网: (2)     ...

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

    springboot2.0配置连接池(hikari.druid) 原文链接:https://www.cnblogs.com/blog5277/p/10660689.html 原文作者:博客园--曲高终 ...

随机推荐

  1. gitlab 构建常见错误

    1.前端是http服务后端是https,原因生产https,测试是http服务环境.代理后端2. java 打包程序需要运行正式数据库没连上错误.打包和跑正式的一个库.3. jenkins不能直接no ...

  2. ISO/IEC 9899:2011 条款6.7.3——类型限定符

    6.7.3 类型限定符 语法 1.type-qualifier: const restrict volatile _Atomic 约束 2.除了指针类型(其被引用的类型是一个对象类型)之外的类型,不应 ...

  3. git merge 结果是 git merge Already up-to-date. 该怎么解决?

    git将主干合并到当前分支时,出现如下结果: 原因在于:执行git merge前,主干的代码没有更新 正确的操作步骤如下: 1 .切换到主干 $ git checkout master 2. 更新主干 ...

  4. Python3基础 str __add__ 拼接,原字符串不变

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  5. Linux 在 TOP 命令中切换内存的显示单位

    顶部的内存信息可以在top运行时按E切换,每次切换转换率为1000,只是没有单位,切换的单位为 k,m,g,t,p: 1. 2. 3., 4. 底下的进程信息按e切换,每次切换转换率为1000,切换的 ...

  6. python中修改列表元素的方法

    一.在for循环中直接更改列表中元素的值不会起作用: 如: l = list(range(10)[::2]) print (l) for n in l: n = 0 print (l) 运行结果: [ ...

  7. Spring cloud微服务安全实战-4-9Zuul网关安全开发(二)

    把在微服务里面写的安全的相关逻辑挪到网关里面来.这样把安全逻辑和业务逻辑解耦开.那么这些问题就都解决了. 先来看下之前的安全的代码,首先在之类做了认证,认证服务器去认证,拿这个token去换用户信息. ...

  8. 数据结构与抽象 Java语言描述 第4版 pdf (内含标签)

    数据结构与抽象 Java语言描述 第4版 目录 前言引言组织数据序言设计类P.1封装P.2说明方法P.2.1注释P.2.2前置条件和后置条件P.2.3断言P.3Java接口P.3.1写一个接口P.3. ...

  9. LeetCode_235. Lowest Common Ancestor of a Binary Search Tree

    235. Lowest Common Ancestor of a Binary Search Tree Easy Given a binary search tree (BST), find the ...

  10. [ kvm ] 学习笔记 8:Ovirt 基础及使用

    目录- 1. oVirt 功能介绍- 2. oVirt 安装部署    - 2.1 基础准备    - 2.2 安装 ovirt-engine    - 2.3 配置 kvm 主机    - 2.4 ...