日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringBoot返回統一的JSON標準格式實現步驟

瀏覽:157日期:2023-12-02 08:34:09

期望返回的JSON格式如下

{ 'code': 200, 'msg': '操作成功', 'data': 'hello jenkins'}

實現步驟如下

1.自定義狀態碼枚舉類。

@AllArgsConstructor@Getterpublic enum StatusCodeEnum { SC200(200, '操作成功'), SC999(999, '操作失敗'), SC401(401, '匿名用戶訪問權限資源時的異常'), SC403(403, '無訪問權限,請聯系管理員授予權限'), SC404(404, '請求的資源不存在'), SC500(500, '系統異常,請稍后重試'), // ...略 private final Integer code; private final String msg;}

2.封裝返回結果

@Datapublic class ApiResult<T> implements Serializable { private Integer code; private String msg; private T data; public static <T> ApiResult<T> success(T data) {return ApiResult.success(StatusCodeEnum.SC200.getMsg(), data); } public static <T> ApiResult<T> success(String msg, T data) {ApiResult<T> apiResult = new ApiResult<>();apiResult.setCode(StatusCodeEnum.SC200.getCode());apiResult.setMsg(msg);apiResult.setData(data);return apiResult; } public static <T> ApiResult<T> fail(Integer code, String msg) {ApiResult<T> apiResult = new ApiResult<>();apiResult.setCode(code);apiResult.setMsg(msg);return apiResult; }}

3.全局異常捕獲處理,使用@RestControllerAdvice注解。

@Slf4j@RestControllerAdvicepublic class GlobalExceptionHandler { /** * 捕獲其他異常 */ @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) @ExceptionHandler(Exception.class) public ApiResult<String> handle(Exception e) {log.error('全局異常信息:{}', e.getMessage());return ApiResult.fail(StatusCodeEnum.SC500.getCode(), StatusCodeEnum.SC500.getMsg()); }}注解 功能 @RestControllerAdvice RestController的增強類,可用于實現全局異常處理器 @ExceptionHandler 統一處理某一類異常,從而減少代碼重復率和復雜度,比如要獲取自定義異??梢訞ExceptionHandler(BusinessException.class) @ResponseStatus 指定客戶端收到的http狀態碼

注:請求進來 會按照 filter -> interceptor -> controllerAdvice -> aspect -> controller的順序調用,404異常(NoHandlerFoundException)是無法通過這種方式捕獲的,因為在Filter層發生的異常都會到Spring默認的異常處理。如果你在配置文件配置了server.error.path的話,就會使用你配置的異常處理地址,如果沒有就會使用你配置的error.path路徑地址,如果還是沒有,默認使用/error來作為發生異常的處理地址。如果想要替換默認的非Controller異常處理直接實現Spring提供的ErrorController接口就行了。

4.攔截Controller方法的返回值,統一處理返回值/響應體,因為我們后面每寫一個接口都需要調用ApiResult.success()這行代碼對結果進行包裝,重復勞動,浪費體力,我們只需要實現SpringBoot提供的ResponseBodyAdvice接口即可。

@RestControllerAdvicepublic class ApiResultWrapper implements ResponseBodyAdvice<Object> { /** * 是否支持advice功能 */ @Override public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> aClass) {return true; } /** * 對返回的數據進行處理 */ @Override public Object beforeBodyWrite(Object o, MethodParameter methodParameter, MediaType mediaType, Class<? extends HttpMessageConverter<?>> aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {if (o instanceof String) { return JSON.toJSONString(ApiResult.success(o));}// 這個判斷的作用:防止全局異常處理后返回的結果(類型為ApiResult)再次被包裝if (o instanceof ApiResult) { return o;}return ApiResult.success(o); }}

5.創建Controller,定義兩個方法,讓第二個方法拋異常

@RestControllerpublic class TestController { @GetMapping('/test1') public String test1() {return '當前時間:' + LocalDateTime.now().format(DateTimeFormatter.ofPattern('yyyy-MM-dd HH:mm:ss')); } @GetMapping('/test2') public Integer test2() {System.out.println(1 / 0);return Integer.MAX_VALUE; }}

6.分別請求http://localhost:8080/test1、http://localhost:8080/test2,結果如下

SpringBoot返回統一的JSON標準格式實現步驟SpringBoot返回統一的JSON標準格式實現步驟

在全局異常處理類中寫了一行代碼

log.error('全局異常信息:{}', e.getMessage());

所以調用test2方法時控制臺打印異常信息如下

SpringBoot返回統一的JSON標準格式實現步驟

到此這篇關于SpringBoot返回統一的JSON標準格式的文章就介紹到這了,更多相關SpringBoot返回JSON格式內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲男女av一区二区| 九九九精品视频| 偷拍精品精品一区二区三区| 久久三级中文| 综合日韩av| 极品日韩av| 日韩在线一二三区| 91麻豆精品激情在线观看最新| 免费成人性网站| 亚洲永久精品唐人导航网址| 91成人精品观看| 国产成人免费av一区二区午夜| 亚洲精品在线影院| 精品一区三区| 在线精品亚洲| 久久国产尿小便嘘嘘| 精品视频自拍| 欧美福利专区| 日本亚洲最大的色成网站www | 91久久黄色| 一级成人国产| 精品视频亚洲| 日韩视频在线一区二区三区| 日韩av一二三| 视频二区不卡| 免费美女久久99| 欧美精品二区| 99久久久久久中文字幕一区| 亚洲字幕久久| 精品无人区麻豆乱码久久久 | 亚洲日产av中文字幕| 久久av资源| 亚洲精品极品少妇16p| 国产欧美视频在线| 香蕉国产精品| 国产欧美91| 91精品1区| 国产亚洲字幕| 好吊一区二区三区| 精品亚洲成人| 天堂成人国产精品一区| 精品视频在线观看网站| 亚洲一区成人| 免费观看亚洲| 日韩在线网址| 成人羞羞视频播放网站| 日本久久二区| 亚洲电影在线一区二区三区| 牛牛精品成人免费视频| 美女尤物久久精品| 日本不良网站在线观看| 色综合视频一区二区三区日韩 | 国产成人精品一区二区免费看京 | 色老板在线视频一区二区| 奇米色欧美一区二区三区| 欧美日韩国产在线观看网站 | 国产精品qvod| 在线观看一区| 精品亚洲美女网站| 美女久久久久久| 婷婷精品在线| 午夜一级久久| 久久在线免费| 久久久久久色| 黑丝一区二区三区| 精品国产一区二区三区av片| 亚洲一区激情| 神马午夜久久| 精品一区二区三区中文字幕视频| 一区二区91| 欧美综合国产| 99综合视频| 亚洲精华国产欧美| 亚洲国内精品| 蜜桃视频欧美| 视频小说一区二区| 国产白浆在线免费观看| 久久精品国产久精国产爱| 亚州国产精品| 日韩精品一级中文字幕精品视频免费观看 | 亚洲三级网站| 欧美日韩国产在线一区| 三上悠亚国产精品一区二区三区| 欧美激情99| 国产精品视频首页| 热久久久久久| 中文字幕成人| 日韩专区一卡二卡| 99综合视频| 日韩午夜av在线| 国产亚洲在线观看| 鲁大师成人一区二区三区| 亚洲精品电影| 亚洲神马久久| 免费在线看一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲高清影视| 蜜臀久久久99精品久久久久久| 国产视频一区三区| 亚洲欧美激情诱惑| 日韩中文字幕不卡| 一区二区亚洲视频| 亚洲毛片在线| 欧美亚洲tv| 麻豆精品视频在线观看| 国产一区二区三区四区| 国产夫妻在线| 日产精品一区| 欧美日韩高清| 蜜臀av亚洲一区中文字幕| 日韩综合一区二区| 国产日产一区| 麻豆精品少妇| 啪啪国产精品| 欧美精品一线| 亚洲精品影视| 国产黄色精品| 国产成人精品999在线观看| 国产麻豆久久| 亚洲精品系列| 成人污污视频| 婷婷六月综合| 91精品国产一区二区在线观看| 国产精品免费精品自在线观看| 国产激情久久| 99久久婷婷这里只有精品| 免费人成精品欧美精品 | 亚洲中字黄色| 国产欧美综合一区二区三区| 成人污污视频| 欧美91精品| 国产亚洲久久| 三级小说欧洲区亚洲区| 日韩精品一级中文字幕精品视频免费观看| 日韩久久一区| 午夜影院一区| 日韩在线网址| 日本免费一区二区三区四区| 国产麻豆综合| 卡一卡二国产精品| 91久久视频| 久久久亚洲欧洲日产| 91精品国产乱码久久久久久久| 久久国产高清| 黄色在线网站噜噜噜| 性欧美69xoxoxoxo| 国产精品一区二区av日韩在线| 天堂8中文在线最新版在线| 一区二区国产精品| 欧洲一级精品| 日韩不卡手机在线v区| 性欧美videohd高精| 日韩av三区| 视频一区中文| 久久精品国产久精国产| 六月婷婷一区| 亚洲精品88| 国产日产一区| 美女精品一区| 99精品综合| 欧美日韩亚洲一区在线观看| 秋霞国产精品| 免费在线观看一区| 蜜臀91精品一区二区三区| 狠狠躁少妇一区二区三区| 日韩国产欧美三级| 99在线精品免费视频九九视| 国产成人精品三级高清久久91| 中文不卡在线| 欧美日韩国产高清电影| 91亚洲国产| 国产精品亚洲欧美日韩一区在线 | 欧美精品国产一区| 欧美日韩免费观看一区=区三区| 日韩综合一区| 国产精品va视频| 欧美日本不卡| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 亚洲一级高清| 精品丝袜久久| 日韩美女精品| 久久国产88| 欧美在线资源| 亚洲二区精品| 99久久www免费| 日韩电影免费在线观看| 国产精品啊v在线| 欧美一区激情| 亚洲不卡视频| 蜜桃视频免费观看一区| 99久久视频| 欧美天堂视频| 亚洲黄色免费看| 精品美女在线视频| 日韩av电影一区| 亚洲一区导航| 亚州av一区| 欧美久久香蕉| 国产三级一区| 国产精品毛片久久久|