news 2026/6/13 15:35:57

Spring Boot 启动失败?10种常见报错及解决方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot 启动失败?10种常见报错及解决方案

Spring Boot 项目启动时报错,是每个Java开发者都会遇到的事。这篇文章整理了10种最常见的启动报错,附解决方案。

1. Failed to configure a DataSource

报错信息:

Failed to configure a DataSource: 'url' attribute is not specified

原因:项目中引入了数据库依赖,但没有配置数据源。

解决:

  • 如果不需要数据库,在启动类上排除自动配置:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
  • 如果需要数据库,检查 application.yml 中的数据源配置是否正确。

2. Port was already in use

报错信息:

Web server failed to start. Port 8080 was already in use.

原因:端口被占用。

解决:

  • 找到占用端口的进程并关闭,或在配置中换一个端口:

server: port: 8081

3. 数据库驱动版本不匹配

报错信息:

java.lang.AbstractMethodError: com.mysql.cj.jdbc.Driver.getMajorVersion()

原因:MySQL驱动版本与数据库版本不匹配。

解决:

  • MySQL 8.x 使用较新版本的驱动:

<dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.0.33</version> </dependency>

4. 包扫描路径不对

现象:项目能启动,但访问接口返回404,或者Autowired注入失败。

原因:启动类的位置不对,默认扫描启动类所在包及其子包。

解决:

  • 确保启动类放在最外层包下

  • 或者手动指定扫描路径:

@SpringBootApplication(scanBasePackages = {"com.example.controller", "com.example.service"})

5. Maven依赖冲突

报错信息:

java.lang.NoSuchMethodError: com.google.common.collect.FluentIterable

原因:项目中有多个版本的同一个jar包冲突。

解决:

  • 在 pom.xml 中用<exclusions>排除冲突的依赖:

<dependency> <groupId>xxx</groupId> <artifactId>xxx</artifactId> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency>

6. Lombok相关的报错

报错信息:

java: cannot find symbol symbol: method getXxx()

原因:IDE没有安装Lombok插件,或者没有启用注解处理器。

解决:

  • IDEA安装Lombok插件:File → Settings → Plugins → 搜索Lombok

  • 启用注解处理器:Settings → Build → Compiler → Annotation Processors → Enable

7. 配置文件格式错误

现象:启动时报YamlPropertySourceLoader相关错误。

原因:yml文件的缩进或格式不正确。

解决:

  • yml对缩进敏感,检查每层的空格数

  • 冒号后面必须有一个空格

8. Whitelabel Error Page

现象:启动成功,但访问页面显示Whitelabel Error Page。

原因:没有配置Controller,或者Controller路径不对。

解决:

  • 确认Controller类上加了@RestController@Controller

  • 确认@RequestMapping中的路径正确

9. 内存不足

报错信息:

java.lang.OutOfMemoryError: Java heap space

解决:

  • 在IDEA或命令行中加大JVM内存:

java -Xms512m -Xmx1024m -jar your-app.jar

10. 端口被系统保留

报错信息:

BindException: Cannot assign requested address

解决:

  • Windows上某些端口被系统保留,换一个端口试试。

总结

遇到启动报错不要慌,先看错误信息的第一行,找到真正的异常原因,再对症下药。上面这10种覆盖了日常开发中90%的启动报错场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 15:33:50

BthPS3技术揭秘:Windows内核级蓝牙协议栈逆向工程实践

BthPS3技术揭秘&#xff1a;Windows内核级蓝牙协议栈逆向工程实践 【免费下载链接】BthPS3 Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals 项目地址: https://gitcode.com/gh_mirrors/bt/BthPS3 在Windows系统上使用PlayStation 3手…

作者头像 李华
网站建设 2026/6/13 15:29:00

ARM9 MC9328MX1 UART与USB寄存器级配置与调试实战指南

1. 项目概述与核心价值在嵌入式系统开发领域&#xff0c;尤其是基于ARM9内核的MC9328MX1这类经典微控制器&#xff0c;UART和USB接口的配置与调试是每个工程师绕不开的“必修课”。你可能已经习惯了调用printf进行串口打印&#xff0c;或者使用现成的USB库进行设备枚举&#xf…

作者头像 李华
网站建设 2026/6/13 15:25:52

清华大学:机器人练武功,用3%的数据居然比用全部数据练得更好?

这项由清华大学、北京大学、上海交通大学及上海期智研究院联合主导&#xff0c;并与GalBot公司合作完成的研究&#xff0c;于2026年6月发表&#xff0c;论文编号为arXiv:2606.06953。有兴趣深入了解的读者可以通过该编号查询完整论文。 研究团队给这套方法起了一个颇为直白的名…

作者头像 李华
网站建设 2026/6/13 15:24:57

终极指南:如何3分钟快速提取Godot游戏资源

终极指南&#xff1a;如何3分钟快速提取Godot游戏资源 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 你是否曾经遇到精美的Godot游戏却无法获取其中的图片、音效和场景资源&#xff1f;Godot引擎将…

作者头像 李华
网站建设 2026/6/13 15:23:50

UUV Simulator水下机器人仿真:构建高保真水下环境的终极指南

UUV Simulator水下机器人仿真&#xff1a;构建高保真水下环境的终极指南 【免费下载链接】uuv_simulator Gazebo/ROS packages for underwater robotics simulation 项目地址: https://gitcode.com/gh_mirrors/uu/uuv_simulator UUV Simulator是一个基于Gazebo和ROS的完…

作者头像 李华