如何动态设置Spring Boot端口?

sun*_*ive 2 java spring spring-boot

所以基本上我想在同一台服务器上运行多个 Spring Boot 应用程序。这意味着在每个应用程序上设置端口号。我想知道是否可以使用某种分配器 API 来完成?例如,在我的应用程序启动之前,它会调用某种服务器来获取它应该运行的端口。

之后我想知道是否可以设置某种 Spring Cloud Gateway,然后使用它将 url 重定向到特定服务,再次使用此服务器获取端口号?

Sud*_*jha 5

application.properties文件中添加

server.port=1089
Run Code Online (Sandbox Code Playgroud)

另外,您可以以编程方式配置端口

@Configuration
public class ServletConfig {
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return (container -> {
            container.setPort(1089);
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

或者作为命令行参数:

-Dserver.port=1089
Run Code Online (Sandbox Code Playgroud)