import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; /**系统返回值对象*/ @Data @Accessors(chain = true) //链式加载 @NoArgsConstructor @AllArgsConstructor public class SysResult implements Serializable { private Integer status; //定义状态信息 200业务处理成功, 201业务处理失败. private String msg; //服务器返回的提示信息. private Object data; //服务器返回业务数据. //封装一些静态API 简化用户调用过程. public static SysResult fail(){ return new SysResult(201,"服务器调用失败",null); public static SysResult success(){ return new SysResult(200, "业务执行成功!!!", null); public static SysResult success(Object data){ return new SysResult(200, "业务执行成功!!!", data); package com.jt.vo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors;import java.io.Serializable;/**系统返回值对象*/@Data@Accessors(chain = true) //链式加载@NoArgsConstructor@AllArgsCo vo (value object):值 对象 ,又称表现层 对象 ,对应展示界面的数据 对象 。比如一个前台展示的数据列表,这个列表中的姓名和用户名分别是存在于两个表中的数据,此时数据显示时查询语句用到了多表查询sql,查询出来的数据包含了两个表的字段,此时使用一个JavaBean实体类无法存储返回结果中两个表的数据字段,因此将这两个表中使用到的字段或属性重新封装为一个新的JavaBean,这个JavaBean就叫做 vo 。通俗来说, vo 就是一个自定义的、多个表的属性或字段的集合。 下面需求是一个多级列表的查询 BO:business object:业务 对象 主要作用是把业务逻辑封装为一个 对象 。这个 对象 可以包括一个或多个其它的 对象 。 比如一个简历,有教育经历、工作经历、社会关系等等。 我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。 package com.yzx.operateplatform. vo ; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModelProperty; * @author yuanshushu * @date 2018/8/29 * @description... 比如 list 如果Order对应表很大,比如40 50个字段传过来list就可能相对较大 从vmware 等软件可以看到gc比较高 这时候可以使用一个 vo 存储 返回值 ,只把需要的几个字段取出来放里面就行了 也能减少网络传输开支,和对内存的占用。 二、 VO :value object值 对象 。 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务 对象 可以和表对应,也可以不,这根据业务的需要. 有一种观点就是:PO只能用在数据层, VO 用在商业逻辑层和表示层。各层操... 公司中有一个业务,返回的 vo 中的一个值可能为 0 属性,如果为 0 给用户显示成 1; 听起来很简单,直接改代码 service 层的代码就行了,但是如果 service 层的逻辑复杂到一定程度,想要改动就不是那么容易了,如图: 考虑对 rpc 接口返回的影响、 es 数据库(我们 es 要求存的数据尽量好数据库一样)的影响,是典型牵一发而动全身; 我写了一版上面图上的改动,反复校验确定影响,做好回归测试准备之后,提交上了代码,并跟领导阐述了影响范围; 领导眉头一皱,你还是改 async function getData() { const response = await fetch('https://example.com/data'); const data = await response.json(); return data; getData().then(data => { console.log(data); 在上面的例子中,getData函数是一个异步函数,它使用fetch方法获取数据,并将数据解析为JSON格式。然后,它返回解析后的数据。在调用getData函数时,我们可以使用then方法来获取返回的数据。