Java返回结果封装,SpringBoot返回结果封装

================================

©Copyright 蕃薯耀 2020-01-09

https://www.cnblogs.com/fanshuyao/

当后面需要返回json结果给前端时,往往要写很多代码,不利于代码重用,所以封装一个返回结果的bean,直接调用,这样方便简洁、高效率、代码统一美观。

一、返回结果bean封装

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.szpl.gtkj.util.JsonUtil;

public class Result {
    
    public static final String SUCCESS = "操作成功。";
    public static final String FAILURE = "操作失败!";
    
    private boolean result;
    private String msg;
    private Object datas;
    
    private Result() {}
    
    public static Result ok() {
        return Result.ok(SUCCESS);
    }
    
    public static Result ok(String msg) {
        return Result.ok(msg, null);
    }
    
    public static Result ok(Object datas) {
        return Result.ok(SUCCESS, datas);
    }
    
    public static Result ok(String msg, Object datas) {
        Result result = new Result();
        result.setResult(true);
        result.setMsg(msg);
        result.setDatas(datas);
        return result;
    }
    
    public static Result fail() {
        return Result.fail(FAILURE);
    }
    
    public static Result fail(String msg) {
        return Result.fail(msg, null);
    }
    
    public static Result fail(Object datas) {
        return Result.fail(FAILURE, datas);
    }
    
    public static Result fail(String msg, Object datas) {
        Result result = new Result();
        result.setResult(false);
        result.setMsg(msg);
        result.setDatas(datas);
        return result;
    }
    
    public boolean isResult() {
        return result;
    }
    public void setResult(boolean result) {
        this.result = result;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Object getDatas() {
        return datas;
    }
    public void setDatas(Object datas) {
        this.datas = datas;
    }
    

    public static void main(String[] args) {
        System.out.println(JsonUtil.obj2String(Result.ok()));
        System.out.println(JsonUtil.obj2String(Result.ok("haha")));
        System.out.println(JsonUtil.obj2String(Result.ok("haha", "aaa")));
        
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("aa", "111");
        map.put("bb", "22");
        map.put("ccc", "33");
        System.out.println(JsonUtil.obj2String(Result.ok("haha", map)));
        
        List<String> list = new ArrayList<String>();
        list.add("aaaaaaaa");
        list.add("bbbbbb");
        list.add("cccccccccccc");
        list.add("ddddddddddd");
        System.out.println(JsonUtil.obj2String(Result.ok("haha", list)));
        
        System.out.println(JsonUtil.obj2String(Result.fail()));
        System.out.println(JsonUtil.obj2String(Result.fail("失败了")));
        System.out.println(JsonUtil.obj2String(Result.fail(list)));
        System.out.println(JsonUtil.obj2String(Result.fail("失败了", map)));
    }
    
    
}

二、使用方法:

1、返回成功:

return Result.ok();

重构的方法:

public static Result ok() {
        return Result.ok(SUCCESS);
    }
    
    public static Result ok(String msg) {
        return Result.ok(msg, null);
    }
    
    public static Result ok(Object datas) {
        return Result.ok(SUCCESS, datas);
    }
    
    public static Result ok(String msg, Object datas) {
        Result result = new Result();
        result.setResult(true);
        result.setMsg(msg);
        result.setDatas(datas);
        return result;
    }

2、返回失败:

return Result.fail();

重构的方法:

public static Result fail() {
        return Result.fail(FAILURE);
    }
    
    public static Result fail(String msg) {
        return Result.fail(msg, null);
    }
    
    public static Result fail(Object datas) {
        return Result.fail(FAILURE, datas);
    }
    
    public static Result fail(String msg, Object datas) {
        Result result = new Result();
        result.setResult(false);
        result.setMsg(msg);
        result.setDatas(datas);
        return result;
    }

二、使用示例:

在Controller声明@RestController

@RestController
@RequestMapping("/xxx")
public class XxxController{
……
}

结果返回的是Result对象bean

@RequestMapping("/uploadFiles")
    public Result uploadFiles(HttpServletRequest request, HttpServletResponse response, 
            @RequestParam("files") MultipartFile[] multipartFiles) throws FileNotFoundException, IOException, ValidationException{
        
        List<FileBean> fileBeans = this.saveFiles(request, response, multipartFiles);
        
        log.info("fileBeans = " + JsonUtil.obj2String(fileBeans));
        
        return Result.ok(fileBeans);
        
    }
@RequestMapping("/save")
public Result save(HttpServletRequest request, HttpServletResponse response, 
            @RequestParam(value="files", required=true) MultipartFile[] multipartFiles) throws Exception {

    return Result.ok();
        
}

(如果你觉得文章对你有帮助,欢迎捐赠,^_^,谢谢!) 

================================

©Copyright 蕃薯耀 2020-01-09

https://www.cnblogs.com/fanshuyao/

原文地址:https://www.cnblogs.com/fanshuyao/p/12169792.html