Spring应用启动报错:无法加载com.mysql.cj.jdbc.Driver驱动类
以下是针对该问题的具体排查步骤:
检查依赖声明准确性
MySQL Connector/J 8.0.32仍使用旧的artifactId,确认pom.xml中的依赖声明无错误:<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.32</version> </dependency>避免误写为8.0.33+版本使用的
mysql-connector-j,否则会引发依赖路径异常。刷新Maven依赖缓存
执行Maven命令清理并重新拉取依赖:mvn clean install -U同时在IDE中刷新Maven依赖(如IntelliJ的「Reload All Maven Projects」),确认
mysql-connector-java-8.0.32.jar已被加入编译和运行的classpath。排查依赖冲突
用命令查看项目依赖树,确认是否存在其他版本的MySQL驱动:mvn dependency:tree若发现旧版本(如5.x)的
mysql-connector-java,通过<exclusions>标签排除冲突依赖:<dependency> <groupId>冲突依赖的groupId</groupId> <artifactId>冲突依赖的artifactId</artifactId> <exclusions> <exclusion> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </exclusion> </exclusions> </dependency>验证Spring Boot自动配置逻辑
尝试移除spring.datasource.driver-class-name配置,Spring Boot 2.7.x会根据数据源URL自动推断驱动类(需确保URL格式为MySQL 8.x标准格式:jdbc:mysql://localhost:3306/your_db?useSSL=false&serverTimezone=UTC)。同时检查是否存在自定义DataSource配置类,是否手动指定了错误的驱动类路径。确认JDK运行环境一致性
检查项目运行时使用的JDK是否为1.8.0_361:- 验证系统环境变量
JAVA_HOME指向正确版本 - 确认IDE的项目SDK、运行配置中的JDK版本与本地环境一致
- 验证系统环境变量
手动测试驱动类加载
编写简单测试类直接加载驱动,定位问题根源:public class DriverLoadTest { public static void main(String[] args) { try { Class.forName("com.mysql.cj.jdbc.Driver"); System.out.println("驱动类加载成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }若测试类加载失败,说明是依赖或classpath问题;若成功,则问题出在Spring Boot配置或自动配置逻辑上。
内容的提问来源于stack exchange,提问作者Ivajlo Iliev

