文章标题
问题描述
最近,笔者在SpringBoot3项目中整合Druid连接池时,偶然翻到一条介绍Druid监控的短视频,兴致盎然之下尝试设置了一下Druid监控。
But,按照视频中提供的yml参数对照设置,项目启动后在浏览器输入"http://localhost:8080/druid/index.html ",浏览器报错,提示404
。
Druid相关配置参数如下:
yml
druid:
# 连接池配置参数
initial-size: 5 # 连接池启动时的初始连接数
min-idle: 5 # 连接池中的最小空闲连接数
max-active: 20 # 连接池中的最大活跃连接数
max-wait: 60000 # 等待连接池分配连接的最大时长,单位为毫秒
time-between-eviction-runs-millis: 60000 # 连接池中连接的空闲检测周期,单位为毫秒
min-evictable-idle-time-millis: 300000 # 连接在池中最小的存活时间,单位为毫秒
filters: stat,wall,slf4j
web-stat-filter:
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
stat-view-servlet:
# 是否启用druid监控
enabled: true
# 监控页面的url
url-pattern: /druid/*
# 登录监控页面的账号密码,默认为root
login-username: admin
login-password: admin
# 允许访问监控页面的ip白名单
allow: 127.0.0.1
deny:
原因分析
一般来说,企业级的项目多是springBoot 2.x 版本,它们所引入的Druid依赖版本一般是druid-spring-boot-starter,示例代码如下:
java
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.19</version>
</dependency>
而笔者的项目SpringBoot版本为v3.3.3,所引入的Druid依赖正是上述版本
在检查URL,端口号,路径名均正确之后,猛然想到可能是 SpringBoot版本与Druid版本不一致所致
,之前在SpringBoot3项目中整合MyBatis-Plus时就报了错。
百度了一下,发现 SpringBoot3项目必须引入版本为druid-spring-boot-3-starter的Druid依赖
,Druid的监控界面才能正常打开。
示例代码如下:
java
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.23</version>
</dependency>
解决方案
前提:确认yml文件或properties文件中Druid的配置参数设置正确
确认无误后 ,根据上述原因分析,检查项目SpringBoot版本与Druid依赖的版本是否兼容,若不兼容,修改相应pom文件中Druid的依赖版本,重启项目生效即可
在浏览器上重新刷新访问Druid的监控页面
至此,Druid 监控页面404报错解决成功!!!