(辦公)springboot配置全局異常
阿新 • • 發佈:2019-03-24
str 錯誤 狀態 success bject spa data clas 消息
項目用到了springboot,本來很高興,但是項目裏什麽東西都沒有,驗證,全局異常這些都需要自己區配置。最近springboot用的還是蠻多的,我還是做事情,把經驗發表一下.全局統一的異常,首先異常的返回值和正常返回的返回值應該統一json.返回值的code和msg可以用enum保存起來,controller層的方法拋出異常.下面看代碼.
package com.imooc.shoptest001.handle; import com.imooc.shoptest001.utils.JsonData; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody;/** * 全局異常捕獲 */ @ControllerAdvice public class ExceptionHandle { /** * ExceptionHandler 捕獲什麽異常 * ResponseBody 返回json格式 * @return */ @ExceptionHandler(value = Exception.class) @ResponseBody public JsonData handle(Exception ex){ ex.printStackTrace(); System.out.println(ex.toString()); return JsonData.error500(ex.getMessage()); } }
package com.imooc.shoptest001.utils; public enum JsonDataEnum { ERROR(-1,"失敗"), SUCCESS(0,"成功"), ; private Integer code; private String msg; JsonDataEnum(Integer code,String msg){this.code = code; this.msg = msg; } public Integer getCode() { return code; } public String getMsg() { return msg; } }
package com.imooc.shoptest001.utils; /** * 前臺返回json類 */ public class JsonData<T> { /** * 返回狀態 */ private boolean status; /** * 錯誤碼/正確碼 */ private Integer code; /** * 消息. */ private String msg; /** * 具體的內容. */ private T data; public static JsonData success(String msg,Object data){ JsonData jsonData = new JsonData(); jsonData.setMsg(msg); jsonData.setStatus(true); jsonData.setCode(200); jsonData.setData(data); return jsonData; } public static JsonData ok(){ JsonData jsonData = new JsonData(); jsonData.setStatus(true); jsonData.setCode(200); return jsonData; } public static JsonData error(Integer code,String msg){ JsonData jsonData = new JsonData(); jsonData.setStatus(false); jsonData.setCode(code); jsonData.setMsg(msg); return jsonData; } public static JsonData error500(String msg){ JsonData jsonData = new JsonData(); jsonData.setStatus(false); jsonData.setCode(500); jsonData.setMsg(msg); return jsonData; } public boolean isStatus() { return status; } public void setStatus(boolean status) { this.status = status; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } }
(辦公)springboot配置全局異常