在这篇文章中,我们将介绍 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 加载这些配置的顺序如下:
- 嵌入式服务器配置。
- 命令行参数。
- 属性文件(application.properties 文件)。
- SpringBootApplication 启动类。
如果您希望 SpringBoot 为您的应用程序分配随机端口,请将端口设置为 0 (server.port=0)