
spring boot应用在默认情况下会启动一个内嵌的web服务器(如tomcat),并监听8080端口。当您尝试启动一个spring boot应用,但该端口已被其他进程占用时,应用将无法成功启动,并会在控制台输出以下错误信息:
*************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. Process finished with exit code 1
这个错误明确指出问题在于8080端口已被占用。值得注意的是,即使您尝试使用系统命令(如lsof -i :8080或netstat -ano | findstr :8080)来查找占用该端口的进程,有时也可能得到空结果。这尤其在集成开发环境(IDE)如IntelliJ IDEA中更为常见,因为IDE内部的进程管理机制可能导致系统层面的命令无法立即识别到冲突。
在IntelliJ IDEA中,最常见的端口占用原因并非来自外部应用,而是IDE内部上一次未完全终止的Spring Boot应用实例。当开发者停止一个应用时,有时进程可能并未完全退出,或者在短时间内再次启动,导致前一个实例的端口尚未及时释放。
排查步骤:
一旦在IntelliJ IDEA的Services窗口中识别出占用端口的冲突进程,最直接的解决方案就是将其终止。
操作步骤:
如果无法找到或终止冲突进程,或者希望为应用配置一个固定的备用端口以避免未来的冲突,可以通过修改Spring Boot的配置文件来实现。
操作步骤:
定位配置文件。 在您的Spring Boot项目的src/main/resources目录下,找到或创建application.properties文件(如果您使用YAML格式,则是application.yml)。
添加或修改端口配置。 在该文件中,添加或修改以下配置项,将服务端口更改为其他未被占用的端口,例如8089:
对于application.properties:
# application.properties server.port=8089
对于application.yml:
# application.yml server: port: 8089
保存并重新启动。 保存文件后,重新构建并运行Spring Boot应用。应用将尝试在指定的新端口上启动。
Spring Boot应用在启动时遇到端口占用是开发过程中常见的问题。在IntelliJ IDEA这样的集成开发环境中,首先应检查其内置的Services窗口,确认没有僵尸进程占用端口。此外,通过修改application.properties(或application.yml)中的server.port属性是解决端口冲突的有效且灵活的方法。理解并掌握这些诊断和解决技巧,能够帮助开发者快速定位并解决应用启动问题,从而提高开发效率。
以上就是Spring Boot应用端口占用问题的诊断与解决的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号