Spring Boot 统一功能处理(二)

        本篇主要介绍Spring Boot统一功能处理中的统一数据返回格式。

目录

一、定义统一的返回类

 二、配置统一数据格式

三、测试配置效果

四、统一格式返回的优点 

五、源码角度解析String问题


一、定义统一的返回类

在我们的接口在处理请求时,返回的结果可以说是参差不齐,既可以是一个String类型的数据,又可以是一个Integer类型的数据,这样未免会显得我们的代码很不规范,并且这种不规范的代码还会增加前后端之间的交流成本。因此,我们可以设计一个统一的类来作为所有接口的返回结果。这个统一的类通常需要包含以下三个部分:

  • code:由我们自己定义的一个状态码
  • msg:响应结果的描述
  • data:响应的数据

下面我们通过代码来具体来实现一下这个类 :

这里可以使用泛型来作为data的参数,毕竟返回的数据类型是多种多样的。

下面我们来改造一下上一篇中所定义的login方法:

这里的状态码200代表请求成功,-1代表失败。

仔细观察可以发现,这串代码其实是有点冗余的,每次返回数据时都得设置一次Result的三个属性。因此,我们还可以对Result进行一些优化,具体如下:

这里我们将设置Result属性的代码进行了封装,因此接口在返回数据时,直接调用这里的方法即可(由于fail表示请求失败,请求失败了通常不会有返回的数据,因此fail没有设置data参数)。接下来我们再优化一下前面的login方法:

 

这样代码就看着简洁多了。

 二、配置统一数据格式

虽然我们这里已经定义了统一的数据返回类Result,但我们并不能保证所有接口都会以这个类作为返回结果,因此我们还需要借助Spring 来配置一下统一的数据返回格式。

首先我们需要创建一个类来实现ResposeBodyAdvice:

然后重写两个方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值