SpringBoot 重复运行时 TomCat 端口被占用

首先这个问题要分为两种情况

第一种:普通启动,改端口就行(主要是为了不用8080端口)

在配置文件 application.properties或者xxx.yml中改掉端口号,以 application.properties为例,加入下面代码即可

server.port=8888

然后重启即可,但如果重启还是被占用,请看第二种

第二种:第二次启动springBoot的入口文件 xxxApplication.java时被占用

方案1:临时解决

首先,出现这种情况是因为,你第一次启动的进程没有关闭,此时你再启动,则会再追加开启一次相同进程,注意我说的是追加,不是替换或者重启,此时你只要关掉前一个就好,以MyEclipse为例,再console点击停止即可,如图:

1.remove launch

SpringBoot 重复运行时 TomCat 端口被占用

2.stop

SpringBoot 重复运行时 TomCat 端口被占用

经过以上两步即可临时解决

方案2:完美解决

在本地项目里的lib目录下(没有可以自己创建)引入 springloaded-1.2.8.RELEASE.jar ,然后修改run的配置

该jar包可在maven仓库官网搜索下载:https://mvnrepository.com

SpringBoot 重复运行时 TomCat 端口被占用

 

SpringBoot 重复运行时 TomCat 端口被占用

 

Program arguments 或者  VM arguments其一:键入以下指令

-javaagent:.\lib\springloaded-1.2.8.RELEASE.jar -noverify

点击应用,然后重新启动即可。

注:如果此方法不行,可把热部署方案添加进去再试一般都没问题

最后附加热部署方案,每次改完代码,就不用重启了,刷新页面就好

附热部署方案:

在pom.xml文件中引入spring-boot-devtoolsspringloaded,然后重启项目于即可

这两个依赖可在maven仓库官网找到:https://mvnrepository.com

<!-- 热部署依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>springloaded</artifactId>
</dependency>

重新对maven 进行update即可