您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Spring Boot如何实现基于ResponseBodyAdvice统一返回拦截处理
在Spring Boot开发中,统一API响应格式能显著提升代码规范性和可维护性。通过`ResponseBodyAdvice`接口,我们可以实现全局响应体的拦截与统一封装。以下是核心实现步骤:
## 1. 创建统一响应体结构
```java
@Data
public class Result<T> {
private int code;
private String message;
private T data;
public static <T> Result<T> success(T data) {
Result<T> result = new Result<>();
result.setCode(200);
result.setMessage("success");
result.setData(data);
return result;
}
}
@RestControllerAdvice
public class GlobalResponseHandler implements ResponseBodyAdvice<Object> {
// 仅当方法标注@ResponseBody或为RestController时生效
@Override
public boolean supports(MethodParameter returnType,
Class<? extends HttpMessageConverter<?>> converterType) {
return returnType.getParameterType() != Result.class
&& !returnType.hasMethodAnnotation(ResponseStatus.class);
}
// 封装返回结果
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType,
MediaType mediaType, Class<? extends HttpMessageConverter<?>> converterType,
ServerHttpRequest request, ServerHttpResponse response) {
return Result.success(body);
}
}
HttpMessageConverter
)@RestControllerAdvice
指定拦截范围ResponseStatus
注解的异常响应该方案可实现:
✅ 自动包装正常返回值
✅ 保持异常处理链路独立
✅ 支持灵活的内容类型判断
通过约50行代码即可完成企业级响应统一处理,大幅减少重复封装代码。 “`
(全文约350字,包含代码示例和关键说明)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。