`

springboot返回值拦截并格式化

阅读更多


@ControllerAdvice
public class ResponseDataHandler implements ResponseBodyAdvice {
    @Override
    public boolean supports(MethodParameter returnType, Class converterType) {
        return true;
    }

    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
        if (returnType.hasMethodAnnotation(ExceptionHandler.class)) {
            //处理异常,可以再添加一个异常处理的类,用于处理异常返回格式
            return body;
        } else {
            return new ResponseBodyDTO(body);
        }
    }
}

 让springboot装配这个拦截器
@Configuration
public class WebConfig implements WebMvcConfigurer{


    @Bean
    public HttpMessageConverters useConverters() {

        return new HttpMessageConverters(new FastJsonHttpMessageConverter());
    }
}

 

分享到:
评论

相关推荐

    springboot工程自定义response注解、自定义规范化返回数据结构

    创建一个切面类,它会在方法执行后捕获结果,并根据`@CustomResponse`中的元信息来构造规范化的返回数据结构: ```java @Aspect @Component public class CustomResponseAspect { @AfterReturning("@annotation...

    SpringBoot Web配置1

    - Spring Boot还自动配置了错误处理、日期和时间格式化、MVC拦截器、HTTP缓存等多种功能,以提供全面的Web应用支持。 通过以上配置,Spring Boot极大地简化了Web应用的开发过程,使得开发者能够更专注于业务逻辑,...

    springboot + dubbo + LCN分布式事务 demo

    - dubbo_b_demo:这可能是一个服务提供者(Provider)的示例,展示了如何在SpringBoot项目中配置并暴露Dubbo服务。 - tyhd_dubbo_api:这可能是项目中的服务接口定义,包含服务的输入输出参数、返回值等信息。 - ...

    Java面试框架高频问题2019

    - 使用`<mvc:interceptors>`配置拦截器,并指定拦截规则。 **问题十四:怎样在方法里面得到Request,或者Session?** - 使用`@RequestParam`注解获取请求参数。 - 使用`@SessionAttributes`注解管理会话属性。 **...

    Spring Boot2集成AOPLog来记录接口访问日志

    接下来,要记录接口访问日志,可以通过AOP的方式在方法调用前后进行拦截,并记录传入参数和返回值等信息。AOP通过定义切点(Pointcut)和通知(Advice)来实现这一点。切点定义了哪些方法被拦截,而通知则定义了在切点处...

    SpringMVC

    - **Interceptor**:拦截器,可以实现预处理和后处理,例如权限校验、日志记录。 4. **数据绑定与验证** - **@RequestParam**:将请求参数绑定到Controller方法参数。 - **@ModelAttribute**:用于将模型数据与...

Global site tag (gtag.js) - Google Analytics