Spring Boot从2.1.2升级至2.6.6后本地正常服务器部署失败求助
Spring Boot 2.6.6部署启动失败排查方案
问题背景
将Spring Boot版本从2.1.2升级到2.6.6后,本地测试正常,但相同代码和app.yaml部署到服务器后无法启动,服务器仅输出启动Banner,无后续日志:
Apr 19, 2023 @ 17:43:02.055 172.20.132.62:9080/ifrs-common:811 :: Spring Boot :: (v2.6.6) Apr 19, 2023 @ 17:43:02.055 172.20.132.62:9080/ifrs-common:811 (empty) Apr 19, 2023 @ 17:43:02.053 172.20.132.62:9080/ifrs-common:811 \\/ ___)| |_)| | | | | || (_| | ) ) ) ) Apr 19, 2023 @ 17:43:02.053 172.20.132.62:9080/ifrs-common:811 ' |____| .__|_| |_|_| |_\__, | / / / / Apr 19, 2023 @ 17:43:02.053 172.20.132.62:9080/ifrs-common:811 =========|_|==============|___/=/_/_/_/ Apr 19, 2023 @ 17:43:02.052 172.20.132.62:9080/ifrs-common:811 (empty) Apr 19, 2023 @ 17:43:02.052 172.20.132.62:9080/ifrs-common:811 . ____ _ __ _ _ Apr 19, 2023 @ 17:43:02.052 172.20.132.62:9080/ifrs-common:811 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ Apr 19, 2023 @ 17:43:02.052 172.20.132.62:9080/ifrs-common:811 ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
排查及解决方向
- 补全启动日志:当前日志仅显示Banner,无关键错误信息。将服务器日志级别调整为
DEBUG,获取完整启动流程日志,重点关注ApplicationContext初始化、Bean加载、配置绑定、端口占用、数据库连接等环节的报错。 - 版本兼容性检查:2.1.x到2.6.x跨度大,需排查核心变更点:
- 循环依赖:2.6.x默认禁用循环依赖,若应用存在该问题会直接启动失败。可临时添加配置
spring.main.allow-circular-references=true验证,后续需重构代码消除循环依赖。 - 自动配置变更:部分旧版自动配置类被移除/替换,检查是否依赖了已废弃的自动配置组件。
- 配置文件规则:2.4.x后配置文件加载顺序、属性绑定语法调整,核对
app.yaml中的配置项是否符合2.6.x规范,比如多环境配置写法、嵌套属性绑定格式。
- 循环依赖:2.6.x默认禁用循环依赖,若应用存在该问题会直接启动失败。可临时添加配置
- 服务器环境差异:
- JDK版本:Spring Boot 2.6.6要求JDK 8+,确保服务器JDK版本与本地一致(推荐JDK8/11),避免版本不兼容。
- 端口占用:用
netstat -tulpn | grep 9080检查服务器9080端口是否被其他进程占用。 - 权限问题:确认应用运行用户拥有读取配置文件、写入日志目录的权限,权限不足会导致启动中断。
- 依赖冲突排查:升级Spring Boot后可能出现第三方依赖冲突。用
mvn dependency:tree(Maven)或gradle dependencies(Gradle)分析依赖树,同步升级不兼容的第三方组件(如Spring Cloud、MyBatis等)到适配2.6.x的版本。
内容的提问来源于stack exchange,提问作者Shankar
相关产品推荐
相关产品推荐

