Spring学习笔记-Spring mvc 统一返回固定格式JSON数据到前端

本文介绍了如何在Spring MVC中使用@ControllerAdvice和ResponseBodyAdvice接口来统一返回固定格式的JSON数据。通过定义泛型类封装正常响应和异常处理,确保了前后端交互的数据一致性。
摘要由CSDN通过智能技术生成

Spring学习笔记-Spring mvc 统一返回固定格式JSON数据到前端

spring mvc 可以通过@ContorllerAdvice 注解实现对控制器增强来实现固定格式JSON数据的返回。一方面通过定义实现ResponseBodyAdvice接口的实现类来处理一般正常的返回结果,另一方面通过@ExceptionHandler注解来处理异常数据返回的固定格式。

  1. 定义返回固定JSON格式的泛型类

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class BaseResponse<T> {
         
    
        private Integer status;
    
        private String message;
    
        private T data;
    
        /**
         * 对成功返回的数据进行封装,转化成固定格式对象
         *
         * @param data 要封装的对象
         * @return 固定格式的对象
         */
        public static <T> BaseResponse<T> ok(@NonNull T data){
         
            return new BaseResponse<>(HttpStatus.OK.value(), 						HttpStatus.OK.getReasonPhrase(), data);
        }
    }
    
    
  2. 定义全局一般正常结果controller增强类,通过使用@ControllerAdvice和实现ResponseBodyAdvice,进而重写beforeBodyWrite方法来实现将返回的对象封装为固定格式的对象,然后转化为json格式。

    @ControllerAdvice
    public class CommResultControllerAdvice implements ResponseBodyAdvice {
         
        @Override
        public boolean supports(MethodParameter methodParameter, Class aClass) {
         
            // aClass能否强制转化为MappingJacksonValue
            return MappingJacksonValue.class.isAssignableFrom(aClass);
        }
        
        @Override
        public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, Serve
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值