SpringBoot 3.2.6应用构建成功但内置服务器未启动问题求助
问题描述
从start.spring.io下载了适配Java 17的SpringBoot 3.2.6版本简单应用,尝试启动时构建显示成功,但未出现通常会有的8080端口服务器启动相关日志,不清楚遗漏了什么。启动时的输出日志如下:
12:17:42: 正在执行 ':DemoApplication.main()'... > Task :compileJava 已是最新状态 > Task :processResources 已是最新状态 > Task :classes 已是最新状态 > Task :DemoApplication.main() . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.6) 2024-06-16T12:17:44.680+05:30 INFO 12032 --- [demo] [ main] com.example.demo.DemoApplication : 正在启动DemoApplication,使用Java 17.0.9,PID为12032 2024-06-16T12:17:44.684+05:30 INFO 12032 --- [demo] [ main] com.example.demo.DemoApplication : 未设置激活的配置文件,回退到1个默认配置文件: "default" 2024-06-16T12:17:45.602+05:30 INFO 12032 --- [demo] [ main] com.example.demo.DemoApplication : DemoApplication已启动,耗时1.432秒(进程已运行1.802秒) 已使用已废弃的Gradle特性,导致该构建与Gradle 9.0不兼容。 你可以使用 '--warning-mode all' 来显示单独的废弃警告,以确定这些警告来自你自己的脚本还是插件。 有关更多信息,请参考Gradle文档。 构建成功,耗时2秒 3个可执行任务: 1个已执行,2个已是最新状态 12:17:45: ':DemoApplication.main()' 执行完成。
解决方案
核心原因是项目缺少Spring Web依赖——Spring Boot默认只有在添加了Web starter依赖时,才会启动嵌入式Tomcat服务器,否则只会启动基础的Spring上下文,不会输出8080端口相关日志。
解决步骤:
- 打开项目的构建配置文件:Gradle项目找
build.gradle,Maven项目找pom.xml - 添加Spring Web依赖:
- Gradle:在
dependencies代码块中添加:implementation 'org.springframework.boot:spring-boot-starter-web' - Maven:在
<dependencies>标签内添加:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
- Gradle:在
- 重新构建并启动项目,此时就能看到Tomcat启动以及8080端口绑定的相关日志了
内容的提问来源于stack exchange,提问作者Sabari
相关产品推荐
相关产品推荐

