这个项目是基于若依的多模块项目,用的SpringBootTest测试方法,这个测试方法会通过web的方式与其它模块中的controller发送数据,发现发送数据时找不到自己所在端口的项目。
原因:
@SpringBootTest 注解的本质确实是用于测试 SpringBoot 应用的代码逻辑,并提供一个模拟的应用环境。然而,这种模拟的环境的范围和行为是可以配置的。@SpringBootTest 不仅可以隔离测试环境,还能根据配置,启动一个几乎等同于生产环境的应用上下文。
当你使用 @SpringBootTest 时,Spring Boot 会加载整个应用的上下文(ApplicationContext),这包括了所有的配置、服务、控制器(Controller)等。关键在于 webEnvironment 属性的设置:
默认情况下(即 webEnvironment = WebEnvironment.MOCK),Spring Boot 使用模拟的Web环境。这种情况下,实际的网络服务不会启动,但所有的 Spring Beans 都会被加载和注册。
如果设置为 WebEnvironment.RANDOM_PORT 或 WebEnvironment.DEFINED_PORT,则会启动一个嵌入式的Web服务器(如 Tomcat),在指定的端口上侦听请求。这意味着实际的网络服务被启动,你的应用将表现得就像在生产环境中运行一样,所