SpringBoot项目启动失败的常见错误总结

 更新时间:2025年11月10日 08:28:01   作者:程序员1970  
文章总结了SpringBoot项目启动失败的常见错误及其解决方法,涵盖了项目识别与依赖问题、配置文件问题、环境配置问题、依赖与Bean注入问题、数据库连接问题、启动类问题以及其他常见问题,需要的朋友可以参考下

一、项目识别与依赖问题

1. 项目不被IDE识别为Maven项目

报错内容

没有启动的三角按钮
项目结构缺少 Maven Dependencies

原因:IDEA没有将其识别为一个Maven项目

2. 依赖未下载或下载失败

报错内容

Could not resolve dependencies
pom.xml 文件出现红色下划线

原因:依赖没有下载到本地或者本地文件残缺

二、配置文件问题

1. 配置文件编码错误(YAML)

报错内容

Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 2

原因:application.yml文件编码不是UTF-8

2. 配置文件格式错误

报错内容

Failed to load application context
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory' defined in null: Could not resolve placeholder 'spring.application.name' in value "${spring.application.name}"

原因:YAML文件缩进不正确或格式错误

三、环境配置问题

1. JDK版本不匹配

报错内容

Error: A JNI error has occurred, please check your installation and try again
Invalid maximum heap size: -Xmx512m
The specified size exceeds the maximum representable size.

原因:使用的JDK版本与Spring Boot版本不匹配

  • Spring Boot 3.x默认要求JDK 17+
  • 17以下版本不支持

2. 端口被占用

报错内容

*************************** APPLICATION FAILED TO START ***************************
Description: The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.
Action: Verify the connector's configuration, identify and stop any process that's listening on port 8080, or configure this application to listen on another port.

原因:8080端口被其他进程占用

四、依赖与Bean注入问题

1. 依赖冲突

报错内容

Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.isCandidateClass(Ljava/lang/Class;Ljava/lang/Class;)Z

原因:不同依赖之间存在版本冲突

2. Bean找不到

报错内容

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.demo.service.UserService' available: expected at least 1 bean which qualifies as autowire candidate.

原因

  • 未添加@Component、@Service等注解
  • 扫描路径不正确

3. Mapper扫描问题

报错内容

Field clustersDetailsAmqMapper in com.ruoyi.clusters.service.impl.ClustersDetailsAmqServiceImpl required a bean of type 'com.ruoyi.clusters.mapper.ClustersDetailsAmqMapper' that could not be found.

原因:启动类未配置正确的Mapper扫描路径

五、数据库连接问题

1. 数据源配置缺失

报错内容

org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

原因:数据库配置缺失(如spring.datasource.url等)

2. 数据库连接失败

报错内容

Unable to connect to database

原因

  • 数据库服务未启动
  • 数据库用户名或密码错误
  • 数据库URL配置错误

六、启动类问题

1. 启动类配置错误

报错内容

找不到主类

原因

  • 启动类未正确标注@SpringBootApplication注解
  • IDE运行配置主类路径错误
  • 项目结构不正确

七、其他常见问题

1. 中文乱码问题

报错内容

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

原因:编码格式不一致

2. 依赖版本不匹配

报错内容

The following dependencies have a problem:
- spring-boot-starter-web: 2.4.3
- spring-cloud-starter-eureka: 2.2.12

原因:Spring Boot与Eureka等依赖版本不匹配

到此这篇关于SpringBoot项目启动失败的常见错误总结的文章就介绍到这了,更多相关SpringBoot项目启动失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IDEA 端口占用的解决方法(推荐)

    IDEA 端口占用的解决方法(推荐)

    这篇文章主要介绍了IDEA 端口占用的解决方法,本文通过两种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Spring的@Lazy懒加载注解用法详细解析

    Spring的@Lazy懒加载注解用法详细解析

    这篇文章主要介绍了Spring的@Lazy懒加载注解用法详细解析,SpringIoC容器会在启动的时候实例化所有单实例 bean ,如果我们想要实现 Spring 在启动的时候延迟加载 bean,即在首次调用bean的时候再去执行初始化,就可以使用 @Lazy 注解来解决这个问题,需要的朋友可以参考下
    2023-11-11
  • Java9新特性之命令行交互式解释器JShell全解析

    Java9新特性之命令行交互式解释器JShell全解析

    JShell是Java 9引入的交互式解释器,允许开发者在命令行中即时编译和运行Java代码片段,无需编写完整的类结构,它支持自动导入、变量和方法保留、错误处理等功能,本文给大家介绍Java9新特性之命令行交互式解释器JShell,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • java实现网页解析示例

    java实现网页解析示例

    这篇文章主要介绍了java实现网页解析示例,需要的朋友可以参考下
    2014-04-04
  • Java反射的定义和用法详解

    Java反射的定义和用法详解

    Java中的反射是指在程序运行时动态地获取和操作类、方法、属性等元素的能力。它使得我们可以在程序运行时获取一个类的信息,并对其进行操作,需要的朋友可以参考下
    2023-05-05
  • Java微信二次开发(三) Java微信各类型消息封装

    Java微信二次开发(三) Java微信各类型消息封装

    这篇文章主要为大家详细介绍了Java微信二次开发第三篇,Java微信各类型消息封装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 在SpringBoot中整合使用Netty框架的详细教程

    在SpringBoot中整合使用Netty框架的详细教程

    这篇文章主要介绍了在SpringBoot中整合使用Netty框架的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 使用jdbcTemplate查询返回自定义对象集合代码示例

    使用jdbcTemplate查询返回自定义对象集合代码示例

    这篇文章主要介绍了使用jdbcTemplate查询返回自定义对象集合代码示例,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Mysql json类型字段Java+Mybatis数据字典功能的实践方式

    Mysql json类型字段Java+Mybatis数据字典功能的实践方式

    这篇文章主要介绍了Mysql json类型字段Java+Mybatis数据字典功能的实践方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • SpringBoot中的JPA(Java Persistence API)详解

    SpringBoot中的JPA(Java Persistence API)详解

    这篇文章主要介绍了SpringBoot中的JPA(Java Persistence API)详解,JPA用于将 Java 对象映射到关系型数据库中,它提供了一种面向对象的方式来操作数据库,使得开发者可以更加方便地进行数据持久化操作,需要的朋友可以参考下
    2023-07-07

最新评论