如何在春季启动中获取已配置侦听器的随机端口



我能够在@SpringBootTest使用属性属性使Server.http.port=0的同时随机运行此端口,但是如何使用属性属性获取Server.http.port属性的随机值?

@Configuration
public class PortConfig {
@Value("${server.http.port}")
private int httpPort;
@Bean
public UndertowEmbeddedServletContainerFactory embeddedServletContainerFactory() {
UndertowEmbeddedServletContainerFactory factory = new UndertowEmbeddedServletContainerFactory();
factory.addBuilderCustomizers(new UndertowBuilderCustomizer() {
@Override
public void customize(Undertow.Builder builder) {
builder.addHttpListener(httpPort, "0.0.0.0");
}
});
return factory;
}
}

取决于您的 Spring 引导版本:

1( 对于版本>= 2.0.0,请使用 @org.springframework.boot.web.server.LocalServerPort 注释来注入在运行时分配的端口:

@LocalServerPort
private int port;

2( 对于所有版本:

@Value("${local.server.port}")
private int port;

您可以通过在application.properties 文件中定义server.port=0来使用随机端口,然后通过

@org.springframework.boot.web.server.LocalServerPort
private int localPort;

相关内容

  • 没有找到相关文章

最新更新