如何阻止Spring每次运行时创建新Embedded server并解决端口占用问题
解决嵌入式服务器重复创建导致端口占用启动失败问题
你的应用每次启动都会自动生成新的嵌入式Web服务器(如Tomcat),当目标端口8088被占用时就会触发启动失败,报错如下:
APPLICATION FAILED TO START
描述:Web server启动失败,端口8088已被占用。
建议操作:找出并停止占用端口8088的进程,或配置应用监听其他端口。
要实现运行时不创建新的嵌入式服务器,可根据应用场景选择以下方案:
方案一:完全禁用Web自动配置(非Web应用场景)
如果你的应用不需要提供Web服务,直接在启动类上排除Web服务器自动配置类:
@SpringBootApplication(exclude = {ServletWebServerAutoConfiguration.class}) public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } }
方案二:通过配置文件指定非Web应用类型
在application.properties中添加配置:
spring.main.web-application-type=NONE
或者使用application.yml格式:
spring: main: web-application-type: NONE
配置生效后,应用启动时将不会初始化任何嵌入式Web服务器,从根源避免端口占用问题。
内容的提问来源于stack exchange,提问作者yahia aziz
相关产品推荐
相关产品推荐

