English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring Boot框架提供了用于运行Spring Boot应用程序的默认嵌入式服务器(Tomcat)。它在端口 8080 上运行。可以在Spring Boot中更改端口。
我们可以在 Spring Boot 中更改端口。通过使用以下接口和属性文件:
使用 application.properties 文件 使用 application.yml 文件 使用 EmbeddedServletContainerCustomizer 接口 使用 WebServerFactoryCustomizer 界面 使用命令行参数
如果要更改默认端口,建议您使用application.properties文件。因为这是一种覆盖默认值的简便快捷的方法。我们使用 server.port 属性覆盖默认属性。
例如,如果要将默认端口8080更改为8082,请在application.properties文件中指定该属性。
application.properties
server.port=8082
我们还可以将port属性设置为0。它将扫描应用程序的随机端口。每当我们重新启动应用程序时,它都会使用一个新端口。
application.properties
server.port=0
类似地,我们也可以使用 yml 文件来更改默认端口。使用 application.properties 或 application.yml 文件,两个文件的工作方式相同。
application.yml
server: port:8082
如果您使用的是 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, indirizzo和 pagine 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.
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).
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); } }
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 。
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, indirizzo和 Pagina di errore。
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 )。
void setPort(int port)
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 在此运行应用程序。