Spring Boot 2.7.1中@LocalServerPort废弃后的替代方案是什么
Spring Boot废弃@LocalServerPort的替代方案
自Spring Boot 2.7.1版本起,位于包org.springframework.boot.web.server.LocalServerPort下的@LocalServerPort注解已被标记为废弃,实际开发中只需要替换注解的导入包路径即可实现完全相同的功能,不需要调整使用逻辑。
具体替代方式
直接导入org.springframework.boot.test.web.server.LocalServerPort包下的同名@LocalServerPort注解即可:
- 功能和旧注解完全一致:依然用于集成测试场景下,自动注入内嵌Web服务实际监听的端口,支持注入到int、Integer、String类型的字段、构造器参数或方法参数上,兼容
RANDOM_PORT等所有原有测试环境配置。 - 废弃原因是Spring Boot对包结构做了拆分,把测试场景专属的Web相关注解,从生产环境通用的web.server包迁移到了test.web.server包下,实现测试代码和生产代码的类路径隔离。
代码示例
// 替换为新的导入路径即可,无需修改其他代码 import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.boot.test.context.SpringBootTest; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; @SpringBootTest(webEnvironment = RANDOM_PORT) public class ServiceTest { @LocalServerPort private int runningPort; // 测试业务逻辑 }
小提示:如果升级版本后IDE提示旧注解的废弃警告,直接删除旧的import语句,让IDE自动导入新路径下的同名注解即可完成适配,没有额外迁移成本。
内容的提问来源于stack exchange,提问作者Rajat
相关产品推荐
相关产品推荐

