Spring Boot 2迁移至3时HttpStatusCode的series方法无法解析的解决办法
Spring Boot 3迁移:HttpStatusCode.series()方法报错的解决
在Spring Boot 3(依赖Spring Framework 6)中,HttpStatusCode接口已移除series()方法,原HttpStatus.Series枚举的判断逻辑被替换为更直观的状态码分类方法。
原代码问题
原Spring Boot 2代码中通过series()判断服务器错误的逻辑:
if (httpResponse.getStatusCode().series() == HttpStatus.Series.SERVER_ERROR) { // ... }
在Spring Boot 3中会抛出Cannot resolve method 'series' in 'HttpStatusCode'错误。
正确迁移方式
直接使用HttpStatusCode提供的分类判断方法,替代原series()逻辑:
import org.springframework.http.client.ClientHttpResponse; ClientHttpResponse httpResponse = ...; if (httpResponse.getStatusCode().is5xxServerError()) { // 原业务逻辑代码 }
其他状态码分类对应方法
如果需要判断其他类型的状态码,可使用以下对应方法:
is1xxInformational():对应原HttpStatus.Series.INFORMATIONAL(1xx状态码)is2xxSuccessful():对应原HttpStatus.Series.SUCCESSFUL(2xx状态码)is3xxRedirection():对应原HttpStatus.Series.REDIRECTION(3xx状态码)is4xxClientError():对应原HttpStatus.Series.CLIENT_ERROR(4xx状态码)
内容的提问来源于stack exchange,提问作者Peter Penzov
相关产品推荐
相关产品推荐

