如何在 Spring Webflux 中运行时获取服务器端口?

fyr*_*kov 4 java spring-boot spring-webflux

我有一个带有 Spring Boot 版本 2.3.5 的 Spring Webflux 应用程序

如何在运行时获取运行Netty容器的服务器端口?(不在测试中)

注意:如果配置中未指定端口,则@Value("${server.port}")两者都@Value("${local.server.port}")不起作用。

zla*_*val 6

在查看 spring boot 库后,我发现有一个ReactiveWebServerApplicationContext. 它可以给你端口。

@Autowired
private ReactiveWebServerApplicationContext server;

@GetMapping
public Flux<YourObject> getSomething() {
    var port = server.getWebServer().getPort());
    ...
}
Run Code Online (Sandbox Code Playgroud)