前言
在【MyBatis使用和不足思考】这一篇文章中,
指出了MyBatis使用的不足。如下:
- 每个实体都需要写增删改查SQL,感觉重复劳动
- 没有分页插件,分页查询比较麻烦
- 没有单元测试,接口测试比较麻烦
- 没有SQL监控,不能统计SQL的运行情况
在前面几篇文章中,已经解决前三个问题。该文章就来解决监控的问题。
Druid为监控而生的数据库连接池,下面来实际操作下.
具体实现
Maven依赖
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.14</version>
</dependency>
</dependencies>
Druid监控页面
Druid有自己的监控页面,要想访问只需要配置参数spring.datasource.druid.stat-view-servlet.enabled=true即可。
启动项目后,访问http://localhost:8080/druid,看到监控页面。
因为监控页面里的信息是比较敏感的,所以一般都会对其进行登录验证。 要想实现登录验证,只需要配置如下参数:
# 指定登录的账号和密码
spring.datasource.druid.stat-view-servlet.login-username=root
spring.datasource.druid.stat-view-servlet.login-password=123456
重启项目后,访问会发现需要登录才能访问。
再来看监控页面的TAB页,会发现上面功能有数据源、SQL监控、SQL防火墙、Web应用、URL监控、Session监控、Spring监控。
但实际上默认只能查看数据源,其它默认都是关闭的,下面来逐一配置。
SQL监控和SQL防火墙
通过配置spring.datasource.druid.filters=stat,wall开启SQL监控和SQL防火墙。
执行访问数据库的操作后,在SQL监控页面就可以看到执行SQL的执行次数、时间等信息,如下:
在SQL防火墙页面,可以看到表访问、白名单统计、黑名单统计等信息,如下:
Web应用和URL监控
通过配置spring.datasource.druid.web-stat-filter.enabled=true开启Web应用和URL监控。
在WEB应用页面,可以查看项目的一些信息,如下:
在URL监控页面,可以查看请求的URI信息,包括请求时间、最大并发数等信息,如下:
Session监控
通过配置spring.datasource.druid.web-stat-filter.session-stat-enable=true开启Session监控。
在Session监控页面,可以查看每个Session的执行信息,如下:
Spring监控
通过配置spring.datasource.druid.aop-patterns=com.zhuqc.framework.*指定Spring监控的范围。
在Spring监控页面,可以查看类中,每个方法的执行次数、执行时间等信息,如下:
完整配置
spring:
datasource:
druid:
stat-view-servlet:
# 开启Druid监控页面
enabled: true
# 访问路径
url-pattern: /druid/*
# 设置账号密码
login-username: root
login-password: 123456
# 重置按钮
reset-enable: true
web-stat-filter:
# 开启Web应用 URI监控
enabled: true
# 开启Session监控
session-stat-enable: true
# 拦截路径
url-pattern: /*
# 开启SQL监控 SQL防火墙
filters: stat,wall
# 开启Spring监控
aop-patterns: com.zhuqc.framework.*
总结
Druid的监控功能还是很强大的,不仅限于对SQL进行监控。而且Druid使用很方便,不需要进行代码编写,仅仅是添加一些配置即可。
以上,感谢阅读,如果感觉有帮助的话,不妨随手点个赞!