在第一篇中,我们对接口返回值做了统一封装,轻松返回结果。
@GetMapping("/fail_response")
public Result fail_response() {
return Result.fail("失败了");
}
@GetMapping("/success_response")
public Result success_response() {
return Result.success("ok");
}
但也有一个问题,每一个接口都得用Result.success(T)来返回,但本质上有效值就是数据本身,能否直接返回data即可,无需每个接口重复调用result才能实现返回呢?
实现基本原理
为了灵活调用,我们可以通过自定义注解给方法或者类增加一个自动返回接口封装,大概实现原理如下:
接口上包含有使用自定义注解时,自动将返回的数据进行response的body数据重写,封装为统一的结构格式
自定义注解的封装
@ResultBody
/**
* desc:自定义注解
* 用法:在返接口方法上使用注解,其结果自动封装为统一response
*/
/**RUNTIME 表示:不仅被保存到class文件中,jvm加载class文件之后,仍然存在*/
@