SpringBoot 更改端口

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

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

使用 application.properties 文件 使用 application.yml 文件 使用 EmbeddedServletContainerCustomizer 接口 使用 WebServerFactoryCustomizer 界面 使用命令行参数

使用application.properties文件

如果要更改默认端口,建议您使用application.properties文件。因为这是一种覆盖默认值的简便快捷的方法。我们使用 server.port 属性覆盖默认属性。

例如,如果要将默认端口8080更改为8082,请在application.properties文件中指定该属性。

application.properties

server.port=8082

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

application.properties

server.port=0

使用application.yml文件

类似地,我们也可以使用 yml 文件来更改默认端口。使用 application.properties application.yml 文件,两个文件的工作方式相同。

application.yml

server:
      port:8082

使用EmbeddedServletContainerCustomizer接口

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

EmbeddedServletContainerCustomizer接口

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

该接口包含名为 customize()的方法。它允许我们自定义和指定 ConfigurableEmbeddedServletContainer 。它解析我们要自定义的名为 容器的参数。

语法

void customize(ConfigurableEmbeddedServletContainer container)

ConfigurableEmbeddedServletContainer接口

这是一个反映 EmbeddedServletContainerFactory 接口(用于创建 EmbeddedServletContainers的工厂接口)中的更改的接口。 。它在 org.springframework.boot.context.embedded 包中定义。它包含一种用于更改端口的方法,称为setPort()方法。

setPort()方法

setPort()方法配置嵌入式servlet容器应侦听的端口。如果不指定端口,它将使用默认端口 8080 。如果要禁用嵌入式服务器的自动启动功能,请使用端口 -1 。端口-1表示它将不监听任何端口,而是启动Web应用程序上下文。该方法解析类型为int的参数端口(要设置的 por t)。

语法

void setPort(int port)

在下面的示例中,我们创建了一个名为 ServerCustomizer 的类,并实现了EmbeddedServletContainerCustomizer接口。我们已经重写了customize()方法,并调用了设置端口 8097 的setPort()方法。

ServerCustomizer.java

@Component
public class ServerCustomizer implements EmbeddedServletContainerCustomizer 
{
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) 
    {
        container.setPort(8097);
    }
}

使用WebServerFactoryCustomizer接口

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

语法

public interface WebServerFactoryCustomizer<T extends WebServerFactory<

该接口包含名为 customize()的方法。它允许我们自定义Web服务器工厂。它解析我们要自定义的名为 factory 的参数。在启动容器本身之前,所有这种类型的Bean都会通过服务器工厂进行回调。因此,我们可以设置 端口,地址错误页面

语法

void  customize(T factory)

WebServerFactory接口

这是工厂的标记接口。它在 org.springframework.boot.web.server 包中定义。它创建一个 WebServer

ConfigurableWebServerFactory

这是配置Web服务器工厂的界面。它在包 org.springframework.boot.web.server 中定义。它扩展了 WebServerFactory ErrorPageRegistory 。它包含一种更改端口的方法,称为 setPort()方法。

setPort()

setPort()方法配置应侦听嵌入式servlet容器的端口。当我们不指定端口时,它将使用默认端口 8080 。如果要禁用嵌入式服务器的自动启动功能,请使用端口 -1 。端口-1表示它将不监听任何端口,而是启动Web应用程序上下文。该方法解析类型为int的参数端口(要设置的 port )。

语法

void setPort(int port)
注意: 此setPort()方法的接口为ConfigurableWebServerFactory。

在下面的示例中,我们创建了一个名为 ServerCustomizer 的类,该类实现了WebServerFactoryCustomizer接口。我们已经重写了customize()方法,并调用了setPort()方法来设置端口 9001

ServerCustomizer.java

@Component
public class ServerCustomizer implements WebServerFactoryCustomizer< ConfigurableWebServerFactory < 
{
    @Override
    public void customize(ConfigurableWebServerFactory factory) 
    {
        factory.setPort(9001);
    }
}

使用命令行参数

我们还可以通过使用命令行参数在Spring Boot中更改端口。我们必须遵循以下步骤:

打开任何Spring Boot应用程序。 单击运行菜单,然后选择运行配置,或右键单击应用程序文件- <运行方式-<  运行配置。屏幕上将显示"运行配置"窗口。  
 Spring Boot更改端口  
 运行配置窗口出现在屏幕上。  
 Spring Boot更改端口
选择要在其中更改端口的应用程序文件。在我们的实例中,我们想更改 SpringBootHelloWorldExampleApplication 的端口,所以我们选择了它。 单击参数标签。
Spring Boot更改端口
VM参数字段中写入 -Dserver.port = 9001 。您可以指定自己的端口,而不是9001。
Spring Boot更改端口
现在,分别单击应用运行按钮。
单击"运行"按钮后,应用程序开始运行。我们可以看到控制台,以查看正在哪个端口服务器上运行,如下所示。
Spring Boot更改端口
打开浏览器并调用URL http://localhost: 9001。它在端口 9001 上运行应用程序。
Spring Boot更改端口