问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SpringBoot集成Druid数据监控

发布网友 发布时间:2024-09-30 09:27

我来回答

1个回答

热心网友 时间:2024-10-18 20:02

前言

??DruidSpringBootStarter用于帮助你在SpringBoot项目中轻松集成Druid数据库连接池和监控。本文将结合SpringBoot集成Druid,进行数据源监控。

初识Druid

??Druid是阿里开源的一个JDBC应用组件,其包括三部分:DruidDriver代理Driver,能够提供基于Filter-Chain模式的插件体系;DruidDataSource高效可管理的数据库连接池;SQLParserSQL语法分析;Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。

下载Druid

??Druid是一个开源项目,源码托管在github上,源代码仓库地址是https://github.com/alibaba/druid。同时每次Druid发布正式版本和快照的时候,都会把源码打包,你可以从上面的下载地址中找到相关版本的源码。

DruidDataSource支持数据库

??理论上说,支持所有有jdbc驱动的数据库。实际测试过的有

数据库支持状态mysql支持,大规模使用oracle支持,大规模使用sqlserver支持postgres支持db2支持h2支持derby支持sqlite支持sybase支持Druid自动识别DriverClass

??Druid是根据url前缀来识别DriverClass的,这样使得配置更方便简洁。

前缀DriverCLass描述信息jdbc:odpscom.aliyun.odps.jdbc.OdpsDriverjdbc:derbyorg.apache.derby.jdbc.EmbeddedDriverjdbc:mysqlcom.mysql.jdbc.Driverjdbc:oracleoracle.jdbc.driver.OracleDriverjdbc:microsoftcom.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:sybase:Tdscom.sybase.jdbc2.jdbc.SybDriverjdbc:jtdsnet.sourceforge.jtds.jdbc.Driverjdbc:postgresqlorg.postgresql.Driverjdbc:fakecom.alibaba.druid.mock.MockDriverjdbc:mockcom.alibaba.druid.mock.MockDriverjdbc:hsqldborg.hsqldb.jdbcDriverjdbc:db2com.ibm.db2.jdbc.app.DB2DriverDB2的JDBCDriver十分混乱,这个匹配不一定对jdbc:sqliteorg.sqlite.JDBCjdbc:ingrescom.ingres.jdbc.IngresDriverjdbc:h2org.h2.Driverjdbc:mckoicom.mckoi.JDBCDriverjdbc:cloudscapecom.cloudscape.core.JDBCDriverjdbc:informix-sqlicom.informix.jdbc.IfxDriverjdbc:timestencom.timesten.jdbc.TimesTenDriverjdbc:as400com.ibm.as400.access.AS400JDBCDriverjdbc:sapdbcom.sap.dbtech.jdbc.DriverSapDBjdbc:JSQLConnectcom.jnetdirect.jsql.JSQLDriverjdbc:JTurbocom.newatlanta.jturbo.driver.Driverjdbc:firebirdsqlorg.firebirdsql.jdbc.FBDriverjdbc:interbaseinterbase.interclient.Driverjdbc:pointbasecom.pointbase.jdbc.jdbcUniversalDriverjdbc:edbcca.edbc.jdbc.EdbcDriverjdbc:mimer:multi1com.mimer.jdbc.Driver快速开始加入依赖

??Druid0.1.18之后版本都发布到maven*仓库中,所以你只需要在项目的pom.xml中加上dependency就可以了。

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--mybatis-spring-boot-starter--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.11</version></dependency>

??主要使用到的依赖是druid这个依赖,其他的是MySQL和MyBatis的依赖。方便连接数据库使用。

配置DruidMoniterConfig

??配置一个Druid监控管理后台,主要是为了在WEB端可以查看监控管理信息。主要的配置信息有用户名、用户名密码、允许访问的权限路径、黑名单的IP等信息。然后需要配置一个web监控的filter,过滤静态文件

/***@ClassNameDruidMoniterConfig*@Description:DruidMoniterConfig*@AuthorJavaZhan@公众号:Java全栈架构师*@Date2020/6/13*@VersionV1.0**/@ConfigurationpublicclassDruidMoniterConfig{@BeanpublicServletRegistrationBeanstatViewServlet(){ServletRegistrationBeanbean=newServletRegistrationBean(newStatViewServlet(),"/druid/*");Map<String,String>initParams=newHashMap<>();initParams.put("loginUsername","admin");initParams.put("loginPassword","admin");initParams.put("allow","");initParams.put("deny","192.168.127.98");bean.setInitParameters(initParams);returnbean;}@BeanpublicFilterRegistrationBeanwebStatFilter(){FilterRegistrationBeanbean=newFilterRegistrationBean();bean.setFilter(newWebStatFilter());Map<String,String>initParams=newHashMap<>();initParams.put("exclusions","*.js,*.css,/druid/*");bean.setInitParameters(initParams);bean.setUrlPatterns(Arrays.asList("/*"));returnbean;}}基础配置信息

??配置文件主要包含数据源的URL、数据库用户名、数据库密码、驱动类等数据源相关配置信息。

server.port=8888#mysqlspring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullspring.datasource.username=testspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.type=com.alibaba.druid.pool.DruidDataSourcemybatis.mapper-locations=classpath*:mapper/**/*.xml启动类/***@ClassNameDemoMyBatisApplication*@Description:DemoMyBatisApplication*@AuthorJavaZhan@公众号:Java全栈架构师*@Date2020/6/13*@VersionV1.0**/@SpringBootApplication@MapperScan("com.example.demo.mapper")publicclassDemoMyBatisApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DemoMyBatisApplication.class,args);}}监控页面

??启动项目之后,在浏览器中输入http://127.0.0.1:8888/druid/,自动跳转到http://127.0.0.1:8888/druid/login.html页面,需要输入用户名和密码信息

输入用户名和密码后,进入监控页面,页面信息如下:

主要包含:数据源、SQL监控、SQL防火墙、Web应用、URI监控、session监控、Spring监控、JSONAPI等信息。好了SpringBoot集成Druid数据监控就已经完成了。

结语

??SpringBoot集成Druid数据监控,方便我们进行数据库连接的数据信息分析,对sql进行监控,都是基础入门的教程,更深入的配置将在以后教程中讲解。

??作者介绍:【小阿杰】一个爱鼓捣的程序猿,JAVA开发者和爱好者。公众号【Java全栈架构师】维护者,欢迎关注阅读交流。

??好了,感谢您的阅读,希望您喜欢,如对您有帮助,欢迎点赞收藏。如有不足之处,欢迎评论指正。下次见。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
法人不同意更换监事怎么办 地裂缝的西安地裂缝综述 西安那里有地裂缝 地裂缝活动特征 男22岁 每次洗头大概都要掉100根左右的头发,持续1个多月了,看起来没... 原神雷神游戏如何下载 ...原神全角色生日汇总。来看看谁和你同一天生日!(截至3.7决斗!召唤之... 韩国歌曲 求MP3下载地址 要能用的额! 几首韩国歌曲的下载地址 银行金融机构是什么 数据库连接池选型DruidvsHikariCP对比分析 SpringBoot默认的连接池 HikariCP springboot配置 Druid 数据源及密码加密 druid连接池中的连接数与预期不一致的一次分析 Spring Boot 3 集成 Druid 连接池详解 Springboot项目配置Druid连接池设置连接不生效 我老公买了一个银戒指 上面打着 “G750 SF” 想了解这个上面金 “嶮势围空断壁圆”的出处是哪里 优利德uT89X万用表每次测量电容时为什么都需充电半天才显示电容的? “物是人非旧”的出处是哪里 “断壁青松古”的出处是哪里 “断壁昼生云”的出处是哪里 “蔓藤森木阅千龄”的出处是哪里 “断壁栖云气”的出处是哪里 离婚把房子给孩子未成年人能够办过户吗 离婚协议约定房子归孩子怎么过户 黑龙江哪几所大学适合学医?哪几所? 伊春市区现在的常住人口有多少 PPT输入文本技巧 旧房装修如何刷墙漆好 QQ一登陆就跑出来个QQ宠物怎么吧他永久删除呢 昨天晚上做梦给蛇追.一直追后来我跑进一个老人的家里! 电动车电池用什么牌子的好 晚上做梦 梦到家里有好多蛇 有一个陌生人捧着蛇就追我 我在前边跑... 叶建勋如何在困难时期带领公司实现扭亏为盈并被评为中国外贸最大500家... 截止到2011年,欧冠进球排行榜是怎么样的? 我的QQ宠物每次登陆QQ后就谈出来,烦的,怎么让他不谈出来? 怎样让qq宠物不在一上qq就出来,或者把它弄死,给别人也行,求一个好办 ... 梦见自己的男朋友抢别的女人的红肚兜 儿童再生障碍性贫血症状 一个手掌中间一个e是什么品牌? 芝麻脆皮彩椒披萨做法: 高手请进:网站源文件为什么会出现乱码?怎么解决啊?文字是乱码,英文代 ... 为什么下载的中文字幕在线播放会有乱码? 在我生日的前天晚上,我梦见我和叔叔还有女朋友一起在路上走,我叔叔说... 广州生态主题蛇园蛇园概述 生态蛇园的构造是什么? 桂林蛇王李是真的吗 蛇岛地址在哪里? 千岛湖蛇岛上放养了多少种蛇?