在这篇文章中,我们将介绍 SpringBoot 中更改默认端口的常用方法。

介绍

在SpringBoot中,默认情况下有一个嵌入的tomcat容器,它绑定的默认web端口是8080,不过这不符合我们的需求,我们在项目上线的时候需要自定义一些端口,比如80。接下来介绍SpringBoot中修改默认端口的方法。

配置文件中修改端口

Spring Boot 提供了一种灵活的方式来使用属性文件来配置我们的应用程序。我们通过修改属性 server.port来修改我们的默认端口号。
在 application.properties 文件中设置 server.port 属性。

server.port = 8081 
在 application.yml 文件中设置服务器端口属性。
server:
     port: 8081

使用 application.properties 更改 Spring Boot 中的默认端口是最常见和最灵活的方法。

在程序中自定义SpringBoot 启动端口号

我们可以选择以编程方式配置您的嵌入式 servlet 容器。 为此,请创建一个实现 WebServerFactoryCustomizer接口的 Spring bean。

@Component
public class CustomizationPort implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {

 @Override
 public void customize(ConfigurableServletWebServerFactory server) {
  server.setPort(8081);
 }
}
同样可以在主@SpringBootApplication类中设置属性:
@SpringBootApplication
public class ChangeApplicationPort {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(ChangeApplicationPort.class);
        app.setDefaultProperties(Collections.singletonMap("server.port", "8081"));
        app.run(args);
    }
} 
在 Spring Boot 1.x版本中,则可以使用 EmbeddedServletContainerCustomizer选项来设置端口号。
public class AppConfig {
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return (container -> {
            container.setPort(8081);
        });
    }
}

命令行参数修改启动端口

我们还可以选择在启动应用程序时设置端口。 这是通过命令行传递参数来完成的。

java -Dserver.port=8081 -jar app.jar
java -jar app.jar –server.port=8081

配置覆盖

SpringBoot 按照一定的顺序加载配置属性。 在覆盖更改时, SpringBoot 加载这些配置的顺序如下:

  1. 嵌入式服务器配置。
  2. 命令行参数。
  3. 属性文件(application.properties 文件)。
  4. SpringBootApplication 启动类。

如果您希望 SpringBoot 为您的应用程序分配随机端口,请将端口设置为 0 (server.port=0)