springboot默认的启动端口是8080,但是有时候我们同时本地需要启动多个应用,那么就会出现端口占用导致只能启动一个应用,通常我们的解决方案是修改应用的启动端口。对于springboot应用,修改启动端口的方式有很多方式,比如修改主配置文件、修改启动类、自定义端口配置和通过jar命令行的方式等等,此篇我们将对以上几种常用的修改启动端口的方式做分析和代码实现。
一)属性配置文件
springboot默认支持的属性配置文件是application.properties和application.yml,修改application.properties配置文件,添加如下内容:
server.port=9090
运行应用启动类:
应用已经在9090端口启动成功,浏览器输入http://loalhost:9090/hello:
请求能够被正常的接收和处理,也就说明我们使用application.properties配置文件修改应用启动端口已经生效。
二)修改启动类
我们可以通过在启动应用程序时设置特定属性,以编程方式配置启动端口。
修改应用启动类:
@SpringBootApplication
public class App
{
public static void main(String[] args) {
SpringApplication app = new SpringApplication(App.class);
app.setDefaultProperties(Collections.singletonMap("server.port","9090"));
app.run(args);
}
}
运行应用启动类:
应用已经在9091端口启动成功,浏览器输入http://loalhost:9091/hello:
请求能够被正常的接收和处理,也就说明我们通过修改启动类特性来修改应用启动端口已经生效。
三)自定义端口配置
我们也可以通过自定义内嵌服务器的配置来修改应用的启动端口。
创建ServerPortCustomizer类实现WebServerFactoryCustomizer接口:
@Component
public class ServerPortCustomizer implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
/**
*
* @param factory the web server factory to customize
*/
@Override
public void customize(ConfigurableWebServerFactory factory) {
factory.setPort(9092);
}
}
运行应用启动类:
应用已经在9092端口启动成功,浏览器输入http://loalhost:9092/hello:
请求能够被正常的接收和处理,也就说明我们通过自定义内嵌服务器配置来修改应用启动端口已经生效。
四)命令行
同样也可以在使用jar命令运行springboot应用的时候指定启动端口:
java -jar xxx.jar --server.port=9093
或者
java -jar -Dserver.port=9093 xxx.jar
两种方式效果相同。先将应用打包,然后进入到应用目录执行命令:
mvn -U clean package -Dmaven.test.skip=true
target目录下生成可执行jar包:
运行命令:
java -jar demo9-port-1.0-SNAPSHOT.jar --server.port=9093
应用已经在9093端口启动成功,浏览器输入http://loalhost:9093/hello:
请求能够被正常的接收和处理,也就说明我们通过命令行修改应用启动端口已经生效。
总结
通过上述分析和编码测试,我们已经实现了几种方式修改springboot启动端口,前三种开发中最常用,第四种通过命令行修改启动端口一般在线上环境用的比较多。对于以上四种修改springboot启动端口的方式执行时存在一定的执行顺序,基本上,配置优先级是:
1)嵌入式服务器配置
2)命令行参数
3)属性文件
4)主@ SpringBootApplication配置
参考:
https://www.baeldung.com/spring-boot-change-port
本文分享自 PersistentCoder 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!