文章目录
- 前言
- Druid介绍
- 问题背景
-
- Druid GitHub地址
- 原因
- 引入依赖
- 配置不生效
-
- 解决方法
- 404错误
- 完整配置
前言
在SpringBoot3中使用Druid数据源,导致启动报错,小伙伴们因踩坑,不得不回退到SpringBoot2版本,好不容易解决了,结果配置又不生效。。。
开开心心打开浏览器,输入http://localhost:8080/druid,?404报错
本文将解决小伙伴们的疑点,本文就是那一道光!
Druid介绍
Druid
是阿里巴巴的一个开源项目,号称为监控而生的数据库连接池,在功能、性能、扩展性方面都超过其他例如DBCP
、C3P0
、BoneCP
、Proxool
、JBoss DataSource
等连接池,而且 Druid
已经在阿里巴巴部署了超过600个应用。
问题背景
SpringBoot3引入Druid,启动报错
Druid GitHub地址
GitHub地址:https://github.com/alibaba/druid
原因
SpringBoot3&jdk17基于 jakarta.servlet
,druid底层依赖是 javax.servlet
SpringBoot2使用com.alibaba.druid.support.http.StatViewServlet
SpringBoot3使用com.alibaba.druid.support.jakarta.StatViewServlet
注意
“你发任你发,我用Java8”
-
SpringBoot3
和Spring6
的最低依赖是JDK17 -
JDK17
是官方保证会长期支持的版本 -
JDK 17
最多可以支持到 2029 年 9 月份 -
JDK 8
支持的时间更长,可以延长到 2030 年 12 月
引入依赖
<!-- Druid 连接池引入 -->
<!-- SpringBoot2 -->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.18</version>
</dependency>
<!-- SpringBoot3 -->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-3-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.18</version>
</dependency>
<!-- 引入log4j2依赖 -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
引入正确的依赖,启动就不会报错了。
配置不生效
druid配置如下:
文章来源:https://uudwc.com/A/6zo5x
把数据源添加到容器中,DruidConfig类代码如下:文章来源地址https://uudwc.com/A/6zo5x
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;