企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 70.4 发现运行时的HTTP端口 ### 70.4 发现运行时的HTTP端口 你可以通过日志输出或它的`EmbeddedServletContainer`的`EmbeddedWebApplicationContext`获取服务器正在运行的端口。获取和确认服务器已经初始化的最好方式是添加一个`ApplicationListener<EmbeddedServletContainerInitializedEvent>`类型的`@Bean`,然后当事件发布时将容器pull出来。 使用`@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)`进行测试时,你可以通过`@LocalServerPort`注解将实际端口注入到字段中,例如: ``` @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT) public class MyWebIntegrationTests { @Autowired EmbeddedWebApplicationContext server; @LocalServerPort int port; // ... } ``` **注**`@LocalServerPort`是`@Value("${local.server.port}")`的元数据,在常规的应用中不要尝试注入端口。正如我们看到的,该值只会在容器初始化后设置。相对于测试,应用代码回调处理的会更早(例如在该值实际可用之前)。