Spring Boot-如何获取运行端口
我有一个spring boot应用程序(使用嵌入式tomcat 7),并且已经设置好了server.port = 0
,application.properties
所以我可以有一个随机端口。服务器启动并在端口上运行后,我需要能够获取所选择的端口。
我不能使用,@Value("$server.port")
因为它是零。这是一条看似简单的信息,所以为什么不能从我的Java代码访问它呢?我该如何访问?
回答:
该解决方案并不像我想要的那样优雅,但是我可以使用它。阅读spring文档,我可以侦听EmbeddedServletContainerInitializedEvent并在服务器启动并运行后获取端口。这是它的样子
import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent;import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
@Component
public class MyListener implements ApplicationListener<EmbeddedServletContainerInitializedEvent> {
@Override
public void onApplicationEvent(final EmbeddedServletContainerInitializedEvent event) {
int thePort = event.getEmbeddedServletContainer().getPort();
}
}
以上是 Spring Boot-如何获取运行端口 的全部内容, 来源链接: utcz.com/qa/435701.html