English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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 cambiare la porta predefinita.

l'interfaccia EmbeddedServletContainerCustomizer

Utilizzando EmbeddedServletContainerCustomizer, possiamo personalizzare il container servlet embedded automaticamente configurato. Prima di avviare il container stesso, tutti i tipi di Bean di questo tipo ricevono un callback dalla factory del container. Pertanto, possiamo impostare parametro di porta, indirizzopagine di errore uniformi. È una modifica all'interfaccia del factory di EmbeddedServletContainers org.springframework.boot.context.embedded definito nel pacchetto.

L'interfaccia contiene un nome customize()che possiamo personalizzare e specificare ConfigurableEmbeddedServletContainer . Analizza il nome del contenitore contenitorei parametri.

Sintassi

void customize(ConfigurableEmbeddedServletContainer container)

l'interfaccia ConfigurableEmbeddedServletContainer Questo riflette EmbeddedServletContainerFactory interfaccia di modifica (usata per creare . È una modifica all'interfaccia del factory di EmbeddedServletContainers org.springframework.boot.context.embedded definito nel pacchetto. Contiene un metodo per modificare la porta chiamato setPort()

Il metodo setPort()

Il metodo setPort() configura la porta che il container servlet embedded deve ascoltare. Se non viene specificata una porta, utilizzerà la porta predefinita 8080 Per disabilitare la funzione di avvio automatico del server embedded, utilizzare la porta -1 Il valore -1 per la porta significa che non verrà ascoltata nessuna porta, ma verrà avviato il contesto dell'applicazione web. Questo metodo accetta un parametro di tipo int chiamato porta (la porta da impostare) por t).

Sintassi

void setPort(int port)

Nell'esempio seguente, abbiamo creato un'istanza chiamata ServerCustomizer di questa classe, ed ha implementato l'interfaccia EmbeddedServletContainerCustomizer. Abbiamo sovrascritto il metodo customize() e chiamato la configurazione della porta 8097 metodo setPort().

ServerCustomizer.java

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

l'interfaccia WebServerFactoryCustomizer

Spring Boot 2.x versione offre WebServerFactoryCustomizer L'interfaccia per modificare la porta predefinita. È definito nel pacchetto org.springframework.boot.web.server Definito nel pacchetto. Analizza il parametro di tipo WebServerFactory T

Sintassi

public interface WebServerFactoryCustomizer<T extends WebServerFactory<

L'interfaccia contiene un nome customize()Il metodo. Ci permette di personalizzare la fabbrica del server web. Analizza il nome factory Tutti i bean di questo tipo vengono chiamati prima dell'avvio del container stesso tramite la fabbrica del server. Pertanto, possiamo impostare parametro di porta, indirizzoPagina di errore

Sintassi

void customize(T factory)

WebServerFactory

Questa è l'interfaccia di etichetta del factory. È definito nell'interfaccia org.springframework.boot.web.server Il pacchetto definisce un WebServer

ConfigurableWebServerFactory

Questa è l'interfaccia per configurare la fabbrica del server web. È definito nel pacchetto org.springframework.boot.web.server Definito nel pacchetto WebServerFactory ErrorPageRegistory Questa classe contiene un metodo per modificare la porta, chiamato setPort()metodo.

setPort()

La configurazione del metodo setPort() deve essere utilizzata per ascoltare la porta del container servlet embedded. Quando non viene specificata una porta, verrà utilizzata la porta predefinita 8080 Per disabilitare la funzione di avvio automatico del server embedded, utilizzare la porta -1 Il valore -1 per la porta significa che non verrà ascoltata nessuna porta, ma verrà avviato il contesto dell'applicazione web. Questo metodo accetta un parametro di tipo int chiamato porta (la porta da impostare) port )。

Sintassi

void setPort(int port)
Attenzione: L'interfaccia di questo metodo setPort() è ConfigurableWebServerFactory.

Nell'esempio seguente, abbiamo creato un'istanza chiamata ServerCustomizer Questa classe, che implementa l'interfaccia WebServerFactoryCustomizer, ha sovrascritto il metodo customize() e ha chiamato il metodo setPort() per impostare la porta. 9001

ServerCustomizer.java

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

使用命令行参数

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

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