欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot系列记录(八)——封装统一返回数据格式

程序员文章站 2022-04-30 13:59:10
...

一、定义统一响应结果类

名称 描述
code
状态码:0成功,-1失败
msg 响应信息
data 返回数据
public class ResultReturn implements Serializable {

    private static final long serialVersionUID = 5805792987639183304L;
    /**
     * 0成功  -1失败
     */
    private String code;

    private String msg;

    private Object data;

    省略getter,setter...

    public ResultReturn(){
        super();
    }

    public ResultReturn(String code, String msg){
        this.code = code;
        this.msg = msg;
    }

    public ResultReturn(String code, String msg, Object data){
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
}

二、工具类

构建一个返回结果工具类,使得不用在每个业务方法中去new一个ResultReturn对象,代码看起来也更加简洁。

public class ResultReturnUtil {

    /**
     * 成功 返回默认码值
     * @param msg
     * @return
     */
    public static ResultReturn success(String msg){
        return new ResultReturn("0",msg);
    }

    /**
     * 成功  返回自定义码值
     * @param code
     * @param msg
     * @return
     */
    public static ResultReturn success(String code, String msg){
        return new ResultReturn(code,msg);
    }

    public static ResultReturn success(String msg, Object data){
        return  new ResultReturn("0",msg,data);
    }

    public static ResultReturn fail(String msg){
        return new ResultReturn("-1",msg);
    }

    public static ResultReturn fail(String code, String msg){
        return new ResultReturn(code,msg);
    }
}

对于工具类中的静态方法根据不同的场景来定义,比如我这里定义了一个可以自定义状态码的方法。

三、通用常量信息类

对于一些增删改查的操作,它的返回信息我们可以使用字符串常量类来事先定义好,就不用每次去写了。这里举个栗子

public class Constant {

    /**
     * 数据插入成功返回信息
     */
    public static final String ADDINFO_SUCCESS = "数据添加成功!";

    /**
     * 数据插入失败返回信息
     */
    public static final String ADDINFO_FAIL = "数据添加失败";

}

四、使用与测试

比如说我这里需要添加一个用户     举个栗子,不要复制代码

SpringBoot系列记录(八)——封装统一返回数据格式

 Controller:

@Controller
@RequestMapping("/userManage")
public class UserController{

    @Autowired
    UserService userService;
    /**
     * 添加用户数据
     * @param user
     * @return
     */
    @CustomLogNotes(module = "添加用户")
    @RequestMapping("/doAddUser")
    @ResponseBody
    public ResultReturn doAddUser(User user) {
        return userService.addUser(user);
    }


}

Service:

直接看实现类   这里就用到我们的工具类了

@Service("userService")
public class UserServiceImpl implements UserService {
    @Autowired
    UserMapper userMapper;

 @Override
 public ResultReturn addUser(User user) {
         int flag = userMapper.insert(user);
        if (flag > 0){
           return ResultReturnUtil.success(Constant.ADDINFO_SUCCESS);
        }else{
            return ResultReturnUtil.fail(Constant.ADDINFO_FAIL);
        }
   }
}

返回结果

SpringBoot系列记录(八)——封装统一返回数据格式