程序员开发实例大全宝库

网站首页 > 编程文章 正文

05:springboot使用Druid作为项目数据源(添加视图化监控)

zazugpt 2024-09-28 03:59:54 编程文章 284 ℃ 0 评论

Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目。Druid支持所有JDBC兼容数据库,包括了Oracle、MySQL、PostgreSQL、SQL Server、H2等。

Druid在监控、可扩展性、稳定性和性能方面具有明显的优势。通过Druid提供的监控功能,可以实时观察数据库连接池和SQL查询的工作情况。使用Druid连接池在一定程度上可以提高数据访问效率。

本章目标

SpringBoot整合Druid完成MySQL数据访问,以及配置Druid监控模块整合。

添加Druid依赖

以后章节不做如何创建项目的讲解了,如果需要了解请到前面的章节查看,谢谢!

因为阿里巴巴开源了druid连接池源码,我们可以通过maven仓库可以获得jar包依赖。访问mvnrepository.com/artifact/com.alibaba/druid选择1.0.29,点击进入后复制maven内容到pom.xml内即可,如下图1所示:

图1

当我们添加maven依赖的时候,项目是不会自动导入的,这时你会看到又下角有个提示,"Enable Auto import"我们点击该选项即可自动下载maven依赖的jar到本地.m2目录并构建到项目中。

添加Druid配置

我们已经将druid添加到我们的项目中,那么接下来我们需要修改application.yml配置文件,添加druid的支持,如下图2所示:

图2

上面配置中的filters:stat表示已经可以使用监控过滤器,这时结合定义一个过滤器,就可以用来监控数据库的使用情况。

初尝试运行项目

我们把第三章:SpringBoot使用SpringDataJPA完成CRUD的数据操作部分代码复制到我们本章项目内,需要复制UserController、UserJPA、UserEntity等到目录结构下,如下图3所示:

图3

上述图3已经把对应的类复制到了本章项目内,我们尝试启动项目,启动日志如下图4所示:

图4

可以看到我红色标注的地方,SpringBoot已经把Druid当做dataSource加载到了项目中,那么我们现在访问用户列表地址:127.0.0.1:8080/user/list,效果如下图5所示:

图5

可以看到我们已经可以访问到用户列表数据,证明我们已经配置成功了,如果中途你出现了什么问题请检查copy过来的类导包是否正确、以及application.yml配置文件内的配置是否正确。

我在再来看下IntelliJ IDEA工具控制台的输出日志,如下图6所示:

图6

上述图6内打印了sql语句,而这个sql则是SpringDataJpa自动生成的,我们已经完成了SpringBoot整合Druid连接池的部分,那么我们接下来开启Druid的监控功能。

开启Druid监控功能

开启监控功能,可以在应用运行的过程中,通过监控提供的多维度数据来分析使用数据库的运行情况,从而可以调整程序设计,以便于优化数据库的访问性能。

下面我们来实现Druid的访问Servlet以及Filter,如下图7所示:

图7

我们已经配置完成了Druid的监控,我们现在来重启项目,查看IntellJ IDEA工具的控制台是否正常运行,如果正常证明你已经配置成功,如果不正请查看配置是否正确,上图7中的@Configuration注解是用来配置SpringBoot项目的配置注解,如果将该注解配置在实体类上,该类内的所有bean以及配置都会应用的全局。

项目运行成功后,我们要访问Druid的监控界面,访问地址:127.0.0.1:8080/druid/login.html,效果如下图8所示:

图8

上述图8我们看到了我们成功的访问了Druid的监控页面,那么我们现在输入我们在DruidConfiguration内配置的用户名密码登录监控平台,进入监控平台首页,如下图9所示:

图9

我们已经成功的访问到了监控首页,可以看到大致包含了如下几个模块:数据源、SQL监控、SQL防火墙、Web应用、URI监控、Session监控、JSONAPI等。

  • 数据源
  • 可以看到项目中管理的所有数据源配置的详细情况,除了密码没有显示外其他都在。
  • SQL监控
  • 可以查看所有的执行sql语句
  • SQL防火墙
  • druid提供了黑白名单的访问,可以清楚的看到sql防护情况。
  • Web应用
  • 可以看到目前运行的web程序的详细信息。
  • URI监控
  • 可以监控到所有的请求路径的请求次数、请求时间等其他参数。
  • Session监控
  • 可以看到当前的session状况,创建时间、最后活跃时间、请求次数、请求时间等详细参数。
  • JSONAPI
  • 通过api的形式访问Druid的监控接口,api接口返回Json形式数据。

总结

上述讲解就是本章的全部内容,本章主要讲解了SpringBoot整合Druid数据库连接池完成SpringDataJpa访问MySQL数据,开启了Druid连接池本身自带的数据监控功能,可以清晰的看到SQL执行以及Session活跃情况,方便优化SQL。

本号已开设如下二十大专题,烦请关注后查看相关专题!

【springboot专题】【spring源码】

【mysql优化专题】【HTTP协议】

【架构技术专题】【多线程专题】

【dubbo专题】【dubbo源码专题】

【JVM调优专题】【HTTP协议专题】

【设计模式专题】【高并发专题】

【架构技术专题】【Lucene专题】

【数据结构专题】【redis专题】

【mq中间件专题】【netty专题】

【java面试专题】【zookeeper专题】

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表