SpringBoot启动失败Application run failed的问题分析及解决办法

 更新时间:2026年01月20日 08:51:09   作者:二哈喇子!  
文章主要介绍了SpringBoot启动失败的问题分析和解决办法,包括XML文件格式错误、数据库名称错误以及MyBatis扫描路径问题的排查和修复步骤,感兴趣的朋友跟随小编一起看看吧

这个异常的问题源比较多,得具体问题具体分析,得看下面那些报错什么意思,不能直接去网上找解决办法

前言

Navicat 能看本地数据库和服务器数据库,具体是哪里的数据库要看清楚,最好cmd命令show databases看一下

项目场景一:Application run failed

提示:SpringBoot服务启动的时候报错:
这个问题遇到好多次了,一直没能记录下来,今天又碰到了

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
ERROR 1572 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed

🧨 错误总览

下面是错误报告我用回车隔开方便查看

Error creating bean with name 'userAction': 
Unsatisfied dependency expressed through field 'userService'; 
nested exception is ... 
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'userServiceImpl': 
nested exception is ... 
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'userMapper' defined in file [...] 
nested exception is ... 
Caused by: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'sqlSessionFactory' ... 
nested exception is ... 
Caused by: org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]... 
nested exception is org.springframework.core.NestedIOException: 
Failed to parse mapping resource: 'file [.../mapper/UserMapper.xml]'... 
nested exception is org.apache.ibatis.builder.BuilderException: 
Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 36;
在 XML 声明中的编码伪属性前面必须有空格。

🔍 错误根本原因

UserMapper.xml 文件的第一行 XML 声明格式不正确。

具体报错是:

在 XML 声明中的编码伪属性前面必须有空格。

这个错误通常出现在 XML 文件的最开始一行,也就是:

<?xml version="1.0" encoding="UTF-8"?><!-- 正确写法 -->

但你的文件可能写成了:

<?xml version="1.0"encoding="UTF-8"?> <!-- ❌ 错误:没有空格 -->

或者:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

其中某个地方少了空格、引号没闭合、语法不对等。

✅ 解决方案

✅ 第一步:检查UserMapper.xml的第一行

打开文件:

E:\桌面\springbootdemo\target\classes\mapper\UserMapper.xml

(注意:这个路径是你编译后的路径,实际修改应该去源码目录下的 XML 文件)

找到类似这一行:

<?xml version="1.0"encoding="UTF-8"?>

改成:

<?xml version="1.0" encoding="UTF-8"?>

确保:

  • versionencoding 属性之间有空格
  • encoding="UTF-8" 写法正确
  • 没有多余的字符或拼写错误

✅ 第二步:验证 XML 是否语法正确

你可以将整个 XML 文件粘贴到在线 XML 验证工具中,例如:

  • https://www.xmlvalidation.com/

它会告诉你哪一行哪个位置出错了。

✅ 第三步:重新构建项目

修改完 XML 后,在命令行执行:

mvn clean install
# 或者
gradle clean build

然后重启 Spring Boot 应用。

🧪 示例修复前 vs 修复后

❌ 错误示例:

<?xml version="1.0"encoding="UTF-8"?>
<mapper namespace="cn.edu.neu.springbootdemo.mapper.UserMapper">
    ...
</mapper>

✅ 正确示例:

<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="cn.edu.neu.springbootdemo.mapper.UserMapper">
    ...
</mapper>

📝 小贴士

问题建议
XML 报错定位难使用 IDE 打开 XML 文件,一般会有语法高亮提示
编码格式混乱确保文件保存为 UTF-8 格式
中文乱码在 XML 头部声明 encoding=“UTF-8” 并保持文件编码一致
Mapper 路径未扫描到检查是否配置了 MyBatis 的 mapper-locations

✅ 总结

步骤内容
1️⃣定位到 UserMapper.xml 文件
2️⃣修改 XML 声明头,补上空格,如:<?xml version="1.0" encoding="UTF-8"?>
3️⃣清理并重新构建项目
4️⃣重启应用

场景分析二:Application run failed

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-10-14 13:15:21.461 ERROR 12548 --- [           
    main] o.s.boot.SpringApplication               
    : Application run failed

原因分析

往下看原因:Caused by:

下面是错误报告我用回车隔开方便检查

Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/spring/boot/starter/MybatisPlusAutoConfiguration.class]: 
Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: 
Factory method 'sqlSessionFactory' threw exception; 
nested exception is com.baomidou.mybatisplus.exceptions.MybatisPlusException: 
Error: GlobalConfigUtils setMetaData Fail !  
Cause:java.sql.SQLSyntaxErrorException: Unknown database 'jiakao'

重点在最后一句,他说我这个错误是:GlobalConfigUtils setMetaData失败!

原因:java.sql SQLSyntaxErrorException:未知数据库“jiakao”

解决办法

上面的错误说数据库名字不对

打开数据库可视化工具一看,是数据库名字打错了

果然数据库名字一改后,立马跑通

总结:

重要的不是问题解决了,重要的是解决问题的过程
还有error才会影响程序的运行,warning警告不用管
根据错误的提示去想,为什么找不到这个bean/class?通过这个错误一步步去跟踪,找到根本的原因,这是积累知识的过程
等以后这种问题发现地慢慢的多起来,慢慢地积累起来,积累的经验越多越好
英语很重要,不仅仅是处理问题的时候、出错的时候、分析问题的时候都是英文

到此这篇关于SpringBoot启动失败Application run failed的解决办法的文章就介绍到这了,更多相关SpringBoot启动失败Application run failed内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring注解@Profile实现开发环境/测试环境/生产环境的切换

    Spring注解@Profile实现开发环境/测试环境/生产环境的切换

    在进行软件开发过程中,一般会将项目分为开发环境,测试环境,生产环境。本文主要介绍了Spring如何通过注解@Profile实现开发环境、测试环境、生产环境的切换,需要的可以参考一下
    2023-04-04
  • SpringBoot中的ExpiringMap代码实例

    SpringBoot中的ExpiringMap代码实例

    这篇文章主要介绍了SpringBoot中的ExpiringMap代码实例,ExpiringMap是一个可以设置过期策略、可变条目过期、延迟条目加载和过期侦听器的线程安全存储容器,需要的朋友可以参考下
    2023-08-08
  • 从入门到精通详解Java中的RESTful接口开发

    从入门到精通详解Java中的RESTful接口开发

    这篇文章主要为大家详细介绍了Java中的RESTful接口开发的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-12-12
  • Java算法之归并排序举例详解

    Java算法之归并排序举例详解

    这篇文章主要介绍了Java算法之归并排序的相关资料,归并排序是一种递归排序算法,通过将数组分成更小的子数组,递归地排序这些子数组,然后将它们合并成有序数组,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • SpringBoot集成 Prometheus进行高效监控的实现

    SpringBoot集成 Prometheus进行高效监控的实现

    Prometheus作为一个开源的监控和告警工具,以其强大的数据采集、存储和查询能力,受到了众多开发者的青睐,本文主要介绍了SpringBoot集成 Prometheus进行高效监控的实现,感兴趣的可以了解一下
    2024-07-07
  • Java详解多线程协作作业之信号同步

    Java详解多线程协作作业之信号同步

    信号量同步是指在不同线程之间,通过传递同步信号量来协调线程执行的先后次序。CountDownLatch是基于时间维度的Semaphore则是基于信号维度的
    2022-05-05
  • Spring boot如何配置请求的入参和出参json数据格式

    Spring boot如何配置请求的入参和出参json数据格式

    这篇文章主要介绍了spring boot如何配置请求的入参和出参json数据格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • SpringBoot居然有44种应用启动器,你都知道吗

    SpringBoot居然有44种应用启动器,你都知道吗

    很多人都不知道SpringBoot应用启动器竟然有44个,本文就一起来介绍一下,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-01-01
  • 使用JWT作为Spring Security OAuth2的token存储问题

    使用JWT作为Spring Security OAuth2的token存储问题

    这篇文章主要介绍了使用JWT作为Spring Security OAuth2的token存储,大家经常使用的方法有两种一种是使用JWT作为Token传递,一种是使用Redis存储Token,资源服务器本地访问Redis校验Token,需要的朋友可以参考下
    2021-12-12
  • Java虚拟机处理异常的最佳方式

    Java虚拟机处理异常的最佳方式

    这篇文章主要给大家介绍了关于Java虚拟机处理异常的最佳方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03

最新评论