SpringBoot進一步封裝返回的JSON資料

2021-10-07 08:31:30 字數 2592 閱讀 2151

最近做了乙個springboot專案,對返回的資料做了進一步的封裝,做一些必要的筆記,一來是對自己學習的知識的鞏固,二來對有同樣問題的人有參考作用。

一 封裝結果類

一般成功時,需要返回的是資料(data,比如list),此時的狀態碼和返回資訊比較固定,而請求異常(比如輸入的密碼錯誤)時不返回資料,而返回的是特定的狀態碼和錯誤提示。

package com.ergouy.miaosha.result;

public

class

result

private

result

(codemsg cm)

this

.code = cm.

getcode()

;this

.msg = cm.

getmsg()

;}/** * 成功時候的呼叫

* @param data

* @param * @return

*/public

static

result

success

(t data)

/** * 異常時候的呼叫

* @param cm

* @param * @return

*/public

static

result

error

(codemsg cm)

public

intgetcode()

public string getmsg()

public t getdata()

}

二 錯誤資訊進一步封裝

對錯誤資訊進行封裝,有利於對系統的維護。

package com.ergouy.miaosha.result;

public

class

codemsg

//通用異常

public

static codemsg success =

newcodemsg(0

,"success");

public

static codemsg server_error =

newcodemsg

(500100

,"服務端異常");

public

static codemsg bind_error =

newcodemsg

(500101

,"引數校驗異常: %s");

public

static codemsg request_illegal =

newcodemsg

(500102

,"請求非法");

//帶動態引數的異常

public codemsg fillargs

(object.

.. args)

public

intgetcode()

public string getmsg()

}

三 靜態返回結果測試

後台**

/**

* 輪詢秒殺結果

* orderid:成功

* -1:失敗

* 0:排隊中

* @param model

* @param user

* @param goodsid

* @return

*/(value =

"/result"

,method = requestmethod.get)

@responsebody

public result

miaosharesult

(model model, miaoshauser user,

@requestparam

("goodsid"

)long goodsid)

long result = miaoshaservice.

getmiaosharesult

(user.

getid()

,goodsid)

;return result.

success

(result)

;}

前端**

function

getmiaosharesult

(goodsid)

, success:

function

(data)

else

if(result ==0)

,400);

}else

,function()

,function()

);}}

else},

error:

function()

});}

四 動態返回結果測試
if

(e instanceof

bindexception

)

五 總結

axios 應用進一步封裝

axios 應用中進一步封裝 能傳送非同步ajax請求的函式模組 封裝axios庫 函式的返回值是promise物件 1.優化1 統一處理請求異常?在外層包乙個自己建立的promise物件 在請求出錯時,不reject error 而是顯示錯誤提示 2.優化2 非同步得到不是reponse,而是re...

bufferedReader進一步理解

public static void main string args string mystring system.out.println 請輸入明文 bufferedreader buf new bufferedreader new inputstreamreader system.in try...

Looper Handler進一步學習

package com.test.looper import android.os.bundle import android.os.handler import android.os.handlerthread import android.os.looper import android.os....