ssm框架進(jìn)階-----統(tǒng)一錯誤返回處理

文章鏈接

  1. ssm入門
  2. ssm框架進(jìn)階-----數(shù)據(jù)庫增刪改查
    3.ssm框架進(jìn)階-----數(shù)據(jù)庫多表查詢

正文

1.在model中創(chuàng)建ResponseCode

/**
 * 定義響應(yīng)的狀態(tài)碼
 */
public enum ResponseCode {
    SUCCESS(100, "SUCCESS"),
    ERROR(101, "ERROR"),
    NEED_LOG(1, "NEED_LOG");
    private int code;
    private String desc;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    ResponseCode(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }
}

2.在model中創(chuàng)建ServerResponse

/**
* 封裝后端返回的Json數(shù)據(jù)
*/

//保證序列化json時,如果是null的對象,key也會消失
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ServerResponse<T> {

   //狀態(tài)碼
   private int statu;
   //數(shù)據(jù)
   private T data;
   //描述信息
   private String msg;

   //setter、getter方法
   public int getStatu() {
       return statu;
   }

   public void setStatu(int statu) {
       this.statu = statu;
   }

   public T getData() {
       return data;
   }

   public void setData(T data) {
       this.data = data;
   }

   public String getMsg() {
       return msg;
   }

   public void setMsg(String msg) {
       this.msg = msg;
   }
//構(gòu)造函數(shù)

   /**
    * 操作成功時,返回數(shù)據(jù)
    *
    * @param statu
    * @param data
    * @param msg
    */
   public ServerResponse(int statu, T data, String msg) {
       this.statu = statu;
       this.data = data;
       this.msg = msg;
   }

   public ServerResponse(int statu) {
       this.statu = statu;
   }

   /**
    * 操作失敗時,不返回數(shù)據(jù)
    *
    * @param statu
    * @param msg
    */
   public ServerResponse(int statu, String msg) {
       this.statu = statu;
       this.msg = msg;
   }

   //使之不在序列化結(jié)果中

   public boolean checkIsSuccess() {
       return this.statu == ResponseCode.SUCCESS.getCode();
   }

//泛型方法

   /**
    * 成功返回數(shù)據(jù)
    *
    * @param msg
    * @param data
    * @param <T>
    * @return
    */
   public static <T> ServerResponse<T> createBySuccess(String msg, T data) {
       return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), data, msg);
   }

   /**
    * 用于校驗登錄信息
    *
    * @param <T>
    * @return
    */
   public static <T> ServerResponse<T> createByCheckSuccess() {
       return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());
   }

   /**
    * 返回錯誤信息
    *
    * @param msg
    * @param <T>
    * @return
    */
   public static <T> ServerResponse<T> createByError(String msg) {
       return new ServerResponse<T>(ResponseCode.ERROR.getCode(), msg);
   }

   public static <T> ServerResponse<T> createByNeedLogin() {
       return new ServerResponse<T>(ResponseCode.NEED_LOG.getCode(), "請先登錄!");
   }

注:如果需要使用JsonInclude需要導(dǎo)包 在pom中導(dǎo)入

    <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.8</version>
        </dependency>

3.在UserService中修改接口

01

4.運行測試
http://localhost:8080/user/getAllUsers

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容