springboot 表现层消息一致性处理:前后端数据协议
1. 背景:为什么要统一返回结果?
如果 Controller 方法直接返回各种类型(比如
Boolean
、Book
、List<Book>
),前端收到的 JSON 格式就五花八门,不方便解析。为了统一前后端交互格式,通常会设计一个“包装类”作为统一的返回结果。
这样前端就可以用同一套逻辑来处理所有请求的返回值。
2. 代码
@Data
public class R {private Boolean flag; // 操作是否成功private Object data; // 返回的数据(可能是 Book、List<Book>、分页对象等)
}
解释:
@Data
:Lombok 注解,自动帮你生成getter/setter/toString/equals/hashCode
。flag
:标识操作结果,true
表示成功,false
表示失败。data
:真正返回的数据,可以是任何类型(对象、列表、分页结果、甚至错误信息)。
R没有固定格式