网站首页 > 编程文章 正文
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专题】
猜你喜欢
- 2024-09-28 Spring Boot 面试,一个问题就干趴下了!
- 2024-09-28 3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务
- 2024-09-28 Spring Boot面试中的一个精髓注解,不会就给淘汰
- 2024-09-28 Java高级架构师-Spring Boot(Spring的自动整合框架)
- 2024-09-28 主流Java数据库连接池分析(C3P0,DBCP,TomcatPool,BoneCP,Druid)
- 2024-09-28 SpringBoot + Mybatis + Druid + PageHelper 实现多数据源并分页
- 2024-09-28 maven-分布式项目之工程结构配置(maven工程目录结构)
- 2024-09-28 「深入浅出SpringBoot」了解Spring Boot自动配置原理
- 2024-09-28 SpringBoot整合RabbitMQ之整合配置篇
- 2024-09-28 聊聊druid的DestroyConnectionThread
你 发表评论:
欢迎- 最近发表
-
- 数据不丢失 从Windows 11的DEV版降级到正式版
- Win11学院:在Windows11 25905预览版中如何启用Dev Drive
- DEVC++的卸载(devcon卸载驱动)
- win11 dev 开发版 升级攻略完整版
- 最新Windows11+Windows10系统各种版本永久激活密钥以及下载链接
- 想学Python,却还记不住语法?神仙书籍 python背记手册双手奉上
- 如何用Python语言开发大型服务器程序
- 30天Python 入门到精通(python零基础入门到精通)
- 入门扫盲:9本自学Python PDF书籍,让你避免踩坑,轻松变大神!
- 学好Python需要看的4本书推荐(学python好用的书)
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)