从正在运行的应用程序中获取服务器端口值

时间:2021-01-16 21:46:49

标签: spring spring-boot

我正在开发 Spring boot((v2.1.2.RELEASE) 应用程序,该应用程序将部署到 Linux 机器上的现有 tomcat 服务器。 如何在代码中获取 port# 的值?我必须记录这个值以进行日志记录。 因为我没有在我的应用程序上配置端口号,所以我不能使用 server.port 等。

谢谢!

2 个答案:

答案 0 :(得分:0)

参考 Ernesto 的回答 - https://stackoverflow.com/a/27910238/2568649,在战争部署的 Spring Boot 或 Spring MVC 控制器中,我相信您可以将 HttpServletRequest 作为方法参数之一包含在内,因此可以从中获取端口。

答案 1 :(得分:0)

您可以使用:

  • 服务器属性:
    @Autowired
    private ServerProperties serverProperties;
    int port= serverProperties.getPort();
    
  • ServletWebServerApplicationContext:
    @Autowired
    private ServletWebServerApplicationContext webServerAppCtxt;
    int port = webServerAppCtxt.getWebServer().getPort();