【发布时间】:2019-03-20 18:27:35
【问题描述】:
我有一个基于 aspectj 的通用 Java 代理,它在多个 Spring Boot 应用程序(和几个 Spring Boot 版本)上运行。 我试图找到一种在运行时获取端口的方法,在应用程序启动时(在发出请求之前)以编程方式。 问题——
我无法使用常规方式获取 Spring Boot 端口,例如 https://stackoverflow.com/questions/30312058/spring-boot-how-to-get-the-running-port 中描述的那些,其中包括 @Autowired 注释等。
我正在应用程序启动后寻找端口,而不依赖于发出的请求。
我正在寻找一种方法来访问 LocalServerPort 对象或任何其他允许我访问端口的选项。
感谢您的帮助
【问题讨论】:
-
这听起来像是一个有问题的hacky情况(通常最好告诉应用程序使用哪个端口),但你可以尝试使用静态支架和设置的跑步者那里有一个值。
-
@LocalServerPort仅用于测试而不是运行时。所以试图在运行时得到它只会失败,因为它不存在(它只是测试!)。代理应获取ServerProperties并查看port,如果已设置则使用它,否则使用默认8080。但是仍然感觉很笨拙,并且看起来您正在尝试在错误的位置做事。 -
@chrylis 这确实不是一个标准案例,而是一个棘手的案例......你能给我举个例子来说明你所说的静态支架和跑步者的意思吗?
标签: java spring spring-boot