1. 程式人生 > 實用技巧 >02 統一結果封裝

02 統一結果封裝

統一結果封裝

這裡我們用到了一個Result的類,這個用於我們的非同步統一返回的結果封裝。一般來說,結果裡面有幾個要素必要的

  • 是否成功,可用code表示(如0表示成功,-1表示異常)
  • 結果訊息
  • 結果資料

所以可得到封裝如下:

  • com.gychen.common.lang.Result
  • (在這裡@Data註解不能生成set和get方法,原因是IDEA裡沒有下載Lombok外掛,去setting->Plugins裡搜尋install->restart IDEA)
@Data
public class Result implements Serializable {
    private String code;   // 返回0是正常,非0是異常
    private String msg;
    private Object data;
    public static Result succ(Object data) {
        Result m = new Result();
        m.setCode("0");
        m.setData(data);
        m.setMsg("操作成功");
        return m;
    }
    public static Result succ(String mess, Object data) {
        Result m = new Result();
        m.setCode("0");
        m.setData(data);
        m.setMsg(mess);
        return m;
    }
    public static Result succ(String code, String msg, Object data) {
        Result m = new Result();
        m.setCode(code);
        m.setMsg(msg);
        m.setData(data);
        return m;
    }
    public static Result fail(String mess) {
        Result m = new Result();
        m.setCode("-1");
        m.setData(null);
        m.setMsg(mess);
        return m;
    }
    public static Result fail(String mess, Object data) {
        Result m = new Result();
        m.setCode("-1");
        m.setData(data);
        m.setMsg(mess);
        return m;
    }
    public static Result fail(String code, String msg, Object data) {
        Result m = new Result();
        m.setCode(code);
        m.setMsg(msg);
        m.setData(data);
        return m;
    }
}

測試封裝

  • 在UserController裡寫測試

    @RestController
    @RequestMapping("/user")
    public class UserController {
        @Autowired
        UserService userService;
        @GetMapping("/index")
        public Result index(){
            User user = userService.getById(1L);
            return Result.succ("index返回成功",user);
        }
    }
    
    
  • 然後run一下

  • 這裡可以用一個Json的外掛瀏覽網頁的json資料,外掛地址。