Spring Boot-如何在运行时获取端口而不使用spring注释

时间:2018-10-16 09:03:50

标签: java spring spring-boot

我有一个基于Aspectj的通用Java代理,该代理在多个Spring Boot应用程序(和多个Spring Boot版本)上运行。 我试图找到一种方法,以编程方式在应用程序启动时(在发出请求之前)在运行时获取端口。 问题-

  1. 我无法使用常规方式来获取Spring Boot端口,例如https://stackoverflow.com/questions/30312058/spring-boot-how-to-get-the-running-port中所述的端口,其中包括@Autowired注释等。

  2. 应用程序启动后,我正在寻找端口,而不依赖于发出的请求。

我正在寻找一种访问LocalServerPort对象或任何其他允许我访问该端口的选项的方法。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

经过一番调查,正如我提到的,我正在使用Aspectj,我使用了以下工具:

 after():
         execution(org.springframework.boot.context.embedded.EmbeddedServletContainer+.new(..))

并使用getPort()方法直接从EmbeddedServletContainer实例获取端口。 对于Tomcat,如果端口为-1,则使用嵌入式tomcat对象从连接器本身获取端口。