Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >全局响应返回处理

全局响应返回处理

作者头像
阿超
发布于 2022-08-21 02:50:47
发布于 2022-08-21 02:50:47
50500
代码可运行
举报
文章被收录于专栏:快乐阿超快乐阿超
运行总次数:0
代码可运行

上代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

import io.github.vampireachao.stream.core.optional.Opp;
import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;

/**
 * @author VampireAchao
 */
@RestControllerAdvice(basePackages = "com.ruben.controller")
public class AnimeResultHandler implements ResponseBodyAdvice<Object> {
    /**
     * Whether this component supports the given controller method return type
     * and the selected {@code HttpMessageConverter} type.
     *
     * @param returnType    the return type
     * @param converterType the selected converter type
     * @return {@code true} if {@link #beforeBodyWrite} should be invoked;
     * {@code false} otherwise
     */
    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        return !(returnType.getParameterType().isAssignableFrom(Result.class));
    }

    /**
     * Invoked after an {@code HttpMessageConverter} is selected and just before
     * its write method is invoked.
     *
     * @param body                  the body to be written
     * @param returnType            the return type of the controller method
     * @param selectedContentType   the content type selected through content negotiation
     * @param selectedConverterType the converter type selected to write to the response
     * @param request               the current request
     * @param response              the current response
     * @return the body that was passed in or a modified (possibly new) instance
     */
    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
        return Opp.ofNullable(body).map(Result::ok).orElseGet(Result::ok);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot 统一接口响应格式的正确姿势
熟悉 web 系统开发的同学可能比较熟悉,目前绝大多数的互联网软件平台基本都是前后端分离的开发模式,为了加快前后端接口对接速度,一套完善且规范的接口标准格式是非常有必要的,不仅能够提升开发效率,也会让代码看起来更加简洁、好维护。
星辰大海的精灵
2024/08/06
2390
Spring mvc中统一对ResponseBody进行封装
在一个前后端分离的项目中,需要对后端RestController里返回的ResponseBody进行统一的封装,让所有的API结果的都是json对象,带有是否成功的标志位,并且将实际的数据放到json的result字段中,例如:
大神带我来搬砖
2018/12/07
1.2K0
【SpringBoot】Spring 一站式解决方案:融合统一返回结果、异常处理与适配器模式
适配器模式, 也叫包装器模式. 将⼀个类的接⼝,转换成客⼾期望的另⼀个接⼝, 适配器让原本接⼝不兼容的类可以合作⽆间.
用户11288949
2025/01/17
1700
【SpringBoot】Spring 一站式解决方案:融合统一返回结果、异常处理与适配器模式
优美的统一返回结果处理
我们写项目一般都会自己写一个Result对象,然后去处理,但是有一个问题,逐渐的接口写多了之后
用户10136162
2022/11/15
7150
优美的统一返回结果处理
SpringBoot中统一API返回格式的两种方式
微服务中,由于各业务团队之间的对接,各个团队之间需要统一返回格式,这样解析时不容易出现错误。因此,有必要统一返回格式。下面我说下项目中常见的两种统一和变更返回值格式的方式
zhaozhen
2023/02/18
8580
springboot对返回值作统一处理方式
在使用springboot的使用,我们更加多的方式是返回json数据,直接返回,如下(比如返回一个对象):
用户7741497
2022/08/01
2.2K0
SpringBoot中如何参数校验、统一异常、统一响应以及自定义注解
@NotBlank:只能作用在String上 不能为null并且调用trim()后长度必须大于0
才疏学浅的木子
2022/11/13
4860
SpringBoot中如何参数校验、统一异常、统一响应以及自定义注解
SpringBoot 定义优雅全局统一 Restful API 响应和统一异常处理,太优雅了!
假如你作为项目组长,为 Spring Boot 项目设计一个规范的统一的RESTfulAPI 响应框架。
码哥字节
2024/11/23
3640
SpringBoot 定义优雅全局统一 Restful API 响应和统一异常处理,太优雅了!
Spring MVC ControllerAdvice深入解析
  Spring 在3.2版本后面增加了一个ControllerAdvice注解。网上的资料说的都是ControllerAdvice配合ExceptionHandler注解可以统一处理异常。而Spring MVC是如何做到的资料却比较少,下面会先给出使用的例子和踩过的一个坑。然后进行相应的源码分析,之后再介始ControllerAdvice另外的两种使用方式。
良辰美景TT
2018/09/11
1.5K0
拿去用,接口统一返回值,最简单的一种实现
上一篇中介绍了 RequestBodyAdvice 接口,可以对@RequestBody 进行增强,本文介绍另外一个相似的接口:ResponseBodyAdvice,这个可以对@ResponseBody 进行增强,可以拦截@ResponseBody 标注的方法的返回值,对返回值进行统一处理,比如进行加密、包装等操作;比如通过他可以实现统一的返回值。
路人甲Java
2021/10/20
1.3K0
统一定制API返回格式,我只做了这几件事
转自:blog.csdn.net/qq_34347620/article/details/102239179
猿天地
2020/09/22
2.2K0
Spring Boot 无侵入式 实现 API 接口统一 JSON 格式返回
无侵入式 统一返回JSON格式 其实本没有没打算写这篇博客的,但还是要写一下写这篇博客的起因是因为,现在呆着的这家公司居然没有统一的API返回格式?,询问主管他居然告诉我用HTTP状态码就够用了(fx
架构师修炼
2020/11/19
1.2K0
spring 使用ResponseBodyAdvice处理响应负载
spring中,使用@ResponseBody注解controller方法,或者返回ResponseEntity对象,返回的数据将通过HttpMessageConverter转换后写入响应的body区域
路过君
2021/10/15
1.1K0
[Spring cloud 一步步实现广告系统] 4. 通用代码模块设计
我们在annotation包下面添加一个注解com.sxzhongf.ad.common.annotation.IgnoreResponseAdvice,用它来标柱是否需要支持上面的统一返回拦截。
Isaac Zhang
2019/09/10
1.1K0
[Spring cloud 一步步实现广告系统] 4. 通用代码模块设计
每天用SpringBoot,还不懂RESTful API返回统一数据格式是怎么实现的?
有童鞋说,我们项目都做了这种处理,就是在每个 API 都单独工具类将返回值进行封装,但这种不够优雅;我想写最少的代码完成这件事,也许有童鞋说,加几个注解就解决问题了,说的没错,但这篇文章主要是为了说明为什么加了几个注解就解决问题了,目的是希望大家知其所以然。
用户1516716
2019/09/11
1.7K0
每天用SpringBoot,还不懂RESTful API返回统一数据格式是怎么实现的?
每天用SpringBoot,还不懂RESTful API返回统一数据格式是怎么实现的?
有童鞋说,我们项目都做了这种处理,就是在每个 API 都单独工具类将返回值进行封装,但这种不够优雅;我想写最少的代码完成这件事,也许有童鞋说,加几个注解就解决问题了,说的没错,但这篇文章主要是为了说明为什么加了几个注解就解决问题了,目的是希望大家知其所以然。
用户4172423
2019/09/04
1.1K0
每天用SpringBoot,还不懂RESTful API返回统一数据格式是怎么实现的?
基于 RequestBodyAdvice 与 ResponseBodyAdvice 实现统一加密和解密
在日常开发中,有时候经常需要和第三方接口打交道,有时候是我方调用别人的第三方接口,有时候是别人在调用我方的第三方接口,那么为了调用接口的安全性,一般都会对传输的数据进行加密操作,如果每个接口都由我们自己去手动加密和解密,那么工作量太大而且代码冗余。那么有没有简单的方法,借助 spring 提供的 RequestBodyAdvice 和 ResponseBodyAdvice 可以实现解密和加密操作。
BUG弄潮儿
2021/06/25
1.7K0
基于 RequestBodyAdvice 与 ResponseBodyAdvice 实现统一加密和解密
Controller层代码这么写,简洁又优雅!
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
3780
Controller层代码这么写,简洁又优雅!
【JavaEE进阶】拦截器与统一功能处理
如果要在以上 Spring AOP的切面中实现用户登录权限效验的功能,有以下两个问题:
xxxflower
2023/10/16
2940
【JavaEE进阶】拦截器与统一功能处理
SpringBoot统一接口返回和全局异常处理
项目中最常见到的是封装一个工具类,类中定义需要返回的字段信息,把需要返回前端的接口信息,通过该类进行封装,这样就可以解决返回格式不统一的现象了。
用户7741497
2022/02/28
6870
推荐阅读
相关推荐
Spring Boot 统一接口响应格式的正确姿势
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验