后端接口响应慢,通常我们就需要优化代码和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/常见问题

最新文章

  1. Razor Engine,实现代码生成器的又一件利器
  2. Nutz Dao实体中索引注解的使用(@TableIndexes@Index)
  3. 【Lucene实验1】构建索引
  4. 浅谈C/C++中的顺序点和副作用
  5. Set Java Proxy for Http/Https
  6. (转)VS.NET2010水晶报表安装部署[VS2010]
  7. 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据
  8. 为什么C/C++语言使用指针
  9. 九度OJ - 题目1481:Is It A Tree?
  10. 九度OJ 题目1371:最小的K个数
  11. Bootloader Project
  12. Git_GitHub详解
  13. 激活函数的比较,sigmoid,tanh,relu
  14. Codeforces 436E Cardboard Box (看题解)
  15. zookeeper ZAB协议 Follower和leader源码分析
  16. scrapy实验1 爬取中国人寿官网新闻,保存为xml
  17. SOA架构大概思路
  18. typora中文版官方免费快速下载以及Markdown的一些常用语法、Java知识点
  19. 前端学习 -- Css -- 文档流
  20. 【Unity】3.3 用3ds Max 2015制作模型并将其导入到Unity

热门文章

  1. 【maven】在pom.xml中引入对json-lib的依赖dependency
  2. Django HttpResponse与JsonResponse
  3. PrivateIpAddresses Array of String 实例主网卡的内网IP列表。 PublicIpAddresses Array of String 实例主网卡的公网IP列表。 注意:此字段可能返回 null,表示取不到有效值。
  4. Springmvc &amp; Report: FineReport vs BIRT vs Jasperreport
  5. 关于微信手机端IOS系统中input输入框无法输入的问题
  6. OMPL 在windows下的安装
  7. 【2B设计】途牛商旅全案设计
  8. .Net MVC 下载网站的文件
  9. 带你进入异步Django+Vue的世界 - Didi打车实战
  10. angular2 ng-if