当前位置: 首页 > 面试题库 >

Spring Boot-如何获取运行端口

费辰阳
2023-03-14
问题内容

我有一个spring boot应用程序(使用嵌入式tomcat 7),并且已经设置好了server.port = 0application.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();
      }
    }


 类似资料:
  • 航班类别:package com.rahul.flightreservation.entities; 表说明:ID航班号运营航空公司出发城市到达城市日期出发估计日期出发时间 错误:Hibernate:from Fligher where departurecity=?和到达=?和DateofDeparture=?2020-06-28 20:32:13.138警告5744---[nio-8083-e

  • 我正在用Apache Camel路由为Spring Boot应用程序创建一些单元测试,使用Spock作为测试框架,我需要模拟来自另一个应用程序的响应。我为此制作了一个模拟控制器,但我需要将测试正在运行的端口注入一个属性。有没有方法获得测试正在运行的端口? 我试过 另外,是否有方法在文件中注入该随机端口?理想情况下,我需要在文件中执行以下操作: 其中端口是运行测试的随机端口。

  • 问题内容: 我们有以下课程 和这个 现在,我需要在运行时知道is是否为 。由于这是jpa自动处理的,因此我无法获取此值。 我们正在调用一个带有as参数的方法,我想避免使用它来检查它是什么类型。如果我可以做些类似的事情会更酷 问题答案: 您可以将鉴别符映射为只读属性:

  • 对于我的JavaWeb Start应用程序,我想限制它只能从指定的域运行。如何获取运行我的应用程序的URL?我尝试了这种方式: 它工作正常,并向我显示了起源,但仅当我的jnlp文件中的代码库参数为空时。当它被设置时,然后它会显示代码库的url,这是错误的(当我在其他服务器上托管libs时),因为我想要运行我的jnlp的url。例如,我从“www.jnlpdomain.com”运行我的jnlp,但代

  • 大家都知道trpc 可以方便地 在客户端获取服务端的接口类型提示,那么请问有可能可以获取 springboot 的类型提示么?

  • 我有一个Spring Boot应用程序(使用嵌入式Tomcat7),并且我在中设置了,这样我就可以有一个随机端口。在服务器启动并在一个端口上运行之后,我需要能够获得所选择的端口。 我不能使用,因为它为零。这是一条看似简单的信息,那么为什么我不能从我的java代码中访问它呢?我如何访问它?