springboot指定端口

2/15/2022 portspingboot

Spring Boot框架提供了用于运行Spring Boot应用程序的默认嵌入式服务器(Tomcat)。它在端口 8080 上运行。可以在Spring Boot中更改端口。

我们可以在 Spring Boot 中更改端口。通过使用以下接口和属性文件:

  • 使用 application.properties 文件
  • 使用 application.yml 文件
  • 使用 maven spring-boot plugin
  • 命令行中指定启动端口
  • 传入虚拟机系统属性
  • 使用 EmbeddedServletContainerCustomizer 接口
  • 使用 WebServerFactoryCustomizer 界面

# 设置系统属性

示例
server.port=8082
1
2

# 使用application.properties文件

    // 示例
    System.setProperty("server.port", "8082");
1
2

我们还可以将port属性设置为0。它将扫描应用程序的随机端口。每当我们重新启动应用程序时,它都会使用一个新端口。

# 使用application.yml文件

示例
server:
      port:8082
1
2
3

# 使用 maven spring-boot plugin(springboot2.X)

mvn clean spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver.port=8088 -Dspring.profiles.active=uat2'
1

# 命令行中指定启动端口

java -jar bootsample. jar --server.port=9000 --spring.profiles.active=dev
1

# 传入虚拟机系统属性

java - Dserver.port=9000 -Dspring.profiles.active=uat2 -jar bootsample.jar
1

# 使用EmbeddedServletContainerCustomizer接口

如果您使用的是 Spring Boot 1.x 版本,它将提供一个接口 EmbeddedServletContainerCustomizer 更改默认端口。

# EmbeddedServletContainerCustomizer接口

通过使用EmbeddedServletContainerCustomizer,我们可以自定义自动配置的嵌入式Servlet容器。在启动容器本身之前,所有这种类型的Bean都会通过容器工厂获得回调。因此,我们可以设置 端口,地址和 均匀错误页面。它在 org.springframework.boot.context.embedded 包中定义

示例
@Component
public class ServerCustomizer implements EmbeddedServletContainerCustomizer
{
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container)
    {
        container.setPort(8097);
    }
}
1
2
3
4
5
6
7
8
9
10

# 使用WebServerFactoryCustomizer接口

Spring Boot 2.x版本提供了 WebServerFactoryCustomizer 接口来更改默认端口。它在包 org.springframework.boot.web.server 中定义。它解析Web服务器工厂类型的参数 T

示例
@Component
public class ServerCustomizer implements WebServerFactoryCustomizer< ConfigurableWebServerFactory <
{
    @Override
    public void customize(ConfigurableWebServerFactory factory)
    {
        factory.setPort(9001);
    }
}
1
2
3
4
5
6
7
8
9
10
Last Updated: 12/26/2022, 11:54:10 AM