精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring 6/Spring Boot 3新特性:優(yōu)雅的業(yè)務(wù)異常處理

開發(fā) 前端
當你使用Spring Boot(Spring MVC)進行RESTful API開發(fā)的時候,你會發(fā)現(xiàn)HTTP的狀態(tài)碼很多時候不能足夠有效的傳遞錯誤的信息。

當你使用Spring Boot(Spring MVC)進行RESTful API開發(fā)的時候,你會發(fā)現(xiàn)HTTP的狀態(tài)碼很多時候不能足夠有效的傳遞錯誤的信息。

HTTP里有一個RFC 7807規(guī)范:https://www.rfc-editor.org/rfc/rfc7807。這個規(guī)范里定義了HTTP API的“問題細節(jié)”(Problem Details)內(nèi)容。

該規(guī)范定義了一個“問題細節(jié)”(Problem Details),用它來攜帶HTTP錯誤返回信息,避免自定義新的錯誤返回格式。我們通常情況下是自己定義錯誤返回格式的。

Spring 6.0為我們提供了一個org.springframework.http.ProblemDetail 來實現(xiàn)該規(guī)范。

RFC 7807是一個很簡單的規(guī)范。它定義了一個JSON格式,并關(guān)聯(lián)了一個媒體類型(media type),這個JSON格式包含了五個可選成員來描述問題細節(jié):

type:一個URI引用,用來識別問題的類型。這個URI的路徑內(nèi)容應(yīng)該用來顯示人類可讀的信息來描述類型;

title:人類可讀的問題類型描述;相同類型的問題,應(yīng)該總是相同的描述;

status:HTTP狀態(tài)碼,將它包含在問題細節(jié)里是一種方便的方式;

detail:人類可讀的問題實例描述,解釋為什么當前的問題發(fā)生在這個特定的場景下;

instance:一個URI引用,用來識別問題實例。這個URI的內(nèi)容應(yīng)該用來描述問題實例,但不是必須的。

我們首先建立一個演示項目:

1、通常的業(yè)務(wù)異常處理方法

定義一個業(yè)務(wù)異常類。異常含義為:當Person找不到的時候拋出的業(yè)務(wù)異常。

public class PersonNotFoundException  extends RuntimeException {
@Getter
private final HttpStatus status;

public PersonNotFoundException(String message, HttpStatus status){
super(message);
this.status = status;
}
}

注冊這個業(yè)務(wù)異常到全局異常處理。

通過在@RestControllerAdvice 中定義全局的切面處理。

通過@ExceptionHandler 來處理指定異常的處理方式。

這里返回的格式就是我們自定義的ErrorMsg格式。我們通過自定義這個ErroMsg完成和接口使用者協(xié)議,完成對業(yè)務(wù)異常的處理。

@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(PersonNotFoundException.class)
public ResponseEntity<ErrorMsg> personNotFoundHandler(PersonNotFoundException e) {
ErrorMsg msg = new ErrorMsg("0000", e.getMessage());
return new ResponseEntity<>(msg, e.getStatus());
}
}

需自定義的錯誤返回

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ErrorMsg {
private String code;
private String msg;
}

測試控制器

@RestController
public class PersonController {

@GetMapping("/getPerson")
public String getPerson(){
throw new PersonNotFoundException("查找的人不存在", HttpStatus.NOT_FOUND);
}
}

啟動程序,訪問:http://localhost:8080/getPerson

2、基于“問題細節(jié)”的業(yè)務(wù)異常處理

基于我們常規(guī)的異常處理,其實已經(jīng)能滿足我們的業(yè)務(wù)需求,使用RFC 7807規(guī)范,我們可以免去自定義的異常錯誤格式(ErrorMsg ),使用Spring 6.0給我們提供的ProblemDetail ,這樣我們以后再無需自己自定義異常返回格式,且在不同的項目之間有了標準,從而客戶端在使用的時候有了可預(yù)測性。

Spring 6.0的做法也很簡單,我們只需要將我們自定返回的ErrorMsg 修改成ProblemDetail 即可。我們看一下示例代碼:

@RestControllerAdvice
public class GlobalExceptionHandler {

@ExceptionHandler(PersonNotFoundException.class)
public ProblemDetail personNotFoundHandler(PersonNotFoundException e) {
ProblemDetail problemDetail = ProblemDetail.forStatus(HttpStatus.NOT_FOUND);
problemDetail.setType(URI.create("https://www.toutiao.com/c/user/token/MS4wLjABAAAAJxW0bvHKNNwIpcsocIDAjNHHNXg2yaj1upViHO2JVNw/"));
problemDetail.setTitle("Person Not Found");
problemDetail.setDetail(String.format("錯誤信息:‘%s’", e.getMessage()));
return problemDetail;
}
}

值得說的是ProblemDetail 還支持設(shè)置一個Map的properties:

private Map<String, Object> properties;

這樣也為我們的定制擴展提供了更大的空間。

啟動,訪問:http://localhost:8080/getPerson,其實的錯誤返回符合RFC 7807規(guī)范。

注意查看返回的頭信息,我們看到了,返回數(shù)據(jù)的媒體類型為:application/problem+json:

感謝支持我的書:《從企業(yè)級開發(fā)到云原生微服務(wù):Spring Boot實戰(zhàn)》

參考資料:https://docs.spring.io/spring-framework/docs/6.0.0-RC2/javadoc-api/org/springframework/http/ProblemDetail.html

文章出自:??愛科學的衛(wèi)斯理??,如有轉(zhuǎn)載本文請聯(lián)系愛科學的衛(wèi)斯理今日頭條號。

責任編輯:武曉燕 來源: 愛科學的衛(wèi)斯理
相關(guān)推薦

2021-04-20 10:50:38

Spring Boot代碼Java

2024-08-02 09:15:22

Spring捕捉格式

2025-04-16 10:03:40

開發(fā)Spring應(yīng)用程序

2025-02-07 09:11:04

JSON對象策略

2022-04-08 16:27:48

SpringBoot異常處理

2021-09-03 06:46:34

Spring 6pring Boot 項目

2021-09-15 09:02:20

Spring 6Spring BootJava

2020-03-16 17:20:02

異常處理Spring Boot

2024-10-11 11:32:22

Spring6RSocket服務(wù)

2024-09-27 12:27:31

2024-12-18 16:19:51

2018-06-06 14:30:38

Spring BootApplication事件

2009-06-18 15:40:07

Spring Batc

2023-09-24 13:55:42

Spring應(yīng)用程序

2009-06-24 09:22:04

Spring2.5新特

2025-04-27 04:00:00

錯誤頁Spring底層

2025-03-11 00:55:00

Spring停機安全

2018-05-30 15:10:24

Spring BootList類型

2024-05-31 14:06:55

SpringCDSGraalVM

2025-02-13 00:34:22

Spring對象系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號

成人做爰www免费看视频网站| 亚洲精品久久久久久久久久久久 | 国产激情在线观看视频| 久久精品国产亚洲a∨麻豆| 男男视频亚洲欧美| 欧美老女人性视频| 加勒比综合在线| 国产精品久久免费视频 | 黄色在线观看国产| 久久精品欧美一区| 亚洲电影免费观看| 一区二区三区 日韩| 好吊日av在线| 日本一区二区三区四区在线视频 | 国产精品免费视频一区| 99精品国产高清在线观看| 9i精品福利一区二区三区| 婷婷精品进入| 亚洲欧洲午夜一线一品| 国产xxxxhd| 日本成人伦理电影| 亚洲国产精品久久人人爱| 亚洲黄色成人久久久| 少妇精品高潮欲妇又嫩中文字幕 | 狠狠躁夜夜躁久久躁别揉| 中文字幕一区二区三区四区五区 | 黄色大全在线观看| 亚洲狼人精品一区二区三区| 久久夜色精品国产欧美乱| 丰满圆润老女人hd| 成人偷拍自拍| 日韩欧美卡一卡二| 久久撸在线视频| 2022成人影院| 天天综合网 天天综合色| 国产盗摄视频在线观看| 国产粉嫩一区二区三区在线观看 | 五月天国产一区| 无码国产精品一区二区免费16| 狠狠v欧美v日韩v亚洲ⅴ| 日本精品视频网站| 99热在线观看免费精品| 欧美日韩亚洲一区三区| 久久中文字幕在线视频| 手机在线中文字幕| 久久成人综合| 中文字幕在线精品| 欧美丰满美乳xxⅹ高潮www| 中文字幕精品影院| 日韩精品久久久久久福利| 这里只有精品在线观看视频| 一区二区三区欧洲区| 日韩欧美国产精品| 免费国偷自产拍精品视频| 粉嫩一区二区三区在线观看| 538prom精品视频线放| 中国黄色片一级| 亚洲三级电影| 欧美一区二区二区| 国产在线观看免费播放| 少妇高潮一区二区三区99| 7777精品伊人久久久大香线蕉经典版下载 | 在线亚洲一区| 欧美中文在线观看| 少妇久久久久久久| 免费国产亚洲视频| 国产日韩中文在线| 国产乱淫片视频| 国产福利不卡视频| 国新精品乱码一区二区三区18| 蜜桃91麻豆精品一二三区| 成人妖精视频yjsp地址| 精品欧美一区二区在线观看视频| 桃花色综合影院| 久久精品一区二区三区av| 色婷婷精品国产一区二区三区| av在线电影免费观看| 《视频一区视频二区| 国产精品av免费观看| www欧美xxxx| 日韩欧美一区视频| 在线看的黄色网址| 色悠久久久久综合先锋影音下载| 欧美成人精品3d动漫h| 国产女人18毛片水真多18| 蜜桃成人av| 日韩中文有码在线视频| 久草免费新视频| 另类天堂av| 91九色国产视频| 欧美一区二区公司| 国产欧美一区在线| 国产日韩欧美大片| 亚洲第一av| 欧美日本在线播放| 无码一区二区精品| 久久亚洲成人| 91国内揄拍国内精品对白| 久草热在线观看| 国产成人日日夜夜| 日韩欧美激情一区二区| 污片视频在线免费观看| 色综合欧美在线| 欧美一区二区三区影院| 欧美日韩精品免费看| 超碰在线免费97| 国产成人日日夜夜| 日韩片电影在线免费观看| 免费大片在线观看www| 五月婷婷在线视频| 亚洲第一成年网| the porn av| 理论片一区二区在线| 中文字幕一区二区三区电影| 日本一区二区不卡在线| 久久9热精品视频| 久99久视频| 在线欧美三级| 欧美日韩小视频| 加勒比精品视频| 女人色偷偷aa久久天堂| 国产精品96久久久久久又黄又硬| 99久久久国产精品无码免费 | 在线观看免费视频黄| 欧美独立站高清久久| 欧美一二三视频| 亚洲AV无码一区二区三区性 | 日韩高清人体午夜| 久久久久久久久毛片| 麻豆精品久久精品色综合| 九九九九精品| 波多野结衣乳巨码无在线观看| 欧美高清视频www夜色资源网| 波多野吉衣中文字幕| 尹人成人综合网| 成人午夜电影免费在线观看| 免费在线看黄网站| 欧美亚洲高清一区| 91精品人妻一区二区三区蜜桃欧美| 亚洲青色在线| 风间由美久久久| 午夜小视频在线观看| 51午夜精品国产| 免费在线观看h片| 激情综合色综合久久综合| 一级特黄录像免费播放全99| 国产精品99精品一区二区三区∴| 亚洲视频电影图片偷拍一区| 日韩手机在线视频| 久久久综合激的五月天| 免费成人在线视频网站| 欧美三级午夜理伦三级小说| 午夜免费日韩视频| 无码精品黑人一区二区三区| 午夜精品久久久久| 三叶草欧洲码在线| 久久激情视频| 日韩亚洲欧美精品| 日本电影久久久| 美女999久久久精品视频| 国产ts变态重口人妖hd| 有码一区二区三区| wwwxx日本| 国产一区二区三区久久| 久久免费看av| 成人国产精品| 久久五月天综合| 国精品人妻无码一区二区三区喝尿 | 日韩伦理在线一区| 亚洲欧美日韩直播| 一级黄色a视频| 亚洲激情欧美激情| 人妻换人妻a片爽麻豆| 国产精品综合| 亚洲电影免费| 日韩欧美中文在线观看| 国语自产偷拍精品视频偷| 涩涩视频在线观看免费| 欧美在线观看一区| 午夜爽爽爽男女免费观看| 国产丶欧美丶日本不卡视频| 天天夜碰日日摸日日澡性色av| 久久不见久久见中文字幕免费| 国产成人亚洲综合青青| 国产网站在线免费观看| 亚洲精品国产精品自产a区红杏吧| 日本精品入口免费视频| 亚洲精品欧美在线| 无码人妻精品一区二区三区温州 | 成人高清网站| 91精品国产一区二区三区| 91国产丝袜播放在线| 国产欧美日本一区视频| 一起草最新网址| 性欧美精品高清| 黄色www在线观看| 欧美色图五月天| 成人午夜一级二级三级| 黄色视屏在线免费观看| www.日韩.com| 视频在线不卡| 91精品国产高清一区二区三区蜜臀 | 深夜福利在线视频| 3751色影院一区二区三区| 日产电影一区二区三区| 欧美国产国产综合| 呦呦视频在线观看| 国产一区二区三区蝌蚪| 日本xxxxxxx免费视频| 狠狠色狠狠色综合日日tαg | 狠狠爱综合网| 亚洲在线观看一区| 人人精品亚洲| http;//www.99re视频| jizz欧美| 日韩免费在线免费观看| 91超碰在线免费| 美日韩丰满少妇在线观看| 国产福利在线| 亚洲片在线观看| 手机av免费在线观看| 日韩一区二区三区av| 这里只有精品999| 欧美午夜片欧美片在线观看| 精品视频久久久久| 亚洲欧美另类在线| 999精品久久久| 欧美经典一区二区| 大又大又粗又硬又爽少妇毛片 | 蜜臀久久99精品久久久画质超高清| 无码中文字幕色专区| 欧美日韩一卡| 国产91porn| 亚洲综合激情在线| 一区精品视频| 欧美aaaa视频| 亚洲国产一区二区三区在线播 | av成人免费在线观看| 69xxx免费视频| 国产成人精品aa毛片| 图片区乱熟图片区亚洲| 久草在线在线精品观看| 性chinese极品按摩| 男人的j进女人的j一区| 国产又黄又猛又粗又爽的视频| 日韩中文欧美在线| 好男人www社区| 日韩国产在线观看| 亚洲中文字幕久久精品无码喷水| 免费一区视频| 国产黄色特级片| 琪琪一区二区三区| 五月激情五月婷婷| 国产在线视频精品一区| 黄色片免费网址| 国产精品中文欧美| youjizz.com日本| av一本久道久久综合久久鬼色| 色婷婷精品久久二区二区密| 99精品欧美一区二区蜜桃免费| 最近中文字幕无免费| 久久久夜色精品亚洲| 成人精品一二三区| 亚洲精品视频在线观看网站| 日本少妇性生活| 欧美视频第一页| 中文字幕一区二区三区四区视频 | 日韩女优在线播放| 国产香蕉久久| 99免费在线观看视频| 欧美成人基地| 日韩免费电影一区二区| 天天综合久久| 水蜜桃色314在线观看| 玖玖在线精品| 男女污污视频网站| 波多野结衣中文字幕一区| 亚洲图片另类小说| 亚洲色欲色欲www在线观看| 久久综合色综合| 欧美性猛xxx| 国产又粗又猛又爽又黄视频| 亚洲成年人在线播放| 成人午夜影视| 欧美黑人极品猛少妇色xxxxx| 性欧美freesex顶级少妇| 国产一区红桃视频| 精品国产一区二区三区不卡蜜臂 | 中文字幕一区二区三区在线视频| 国产高清av在线播放| 日韩av电影天堂| 久久久久亚洲av无码网站| 久久久久久久网| 欧美日韩国产精品综合| 91国内精品野花午夜精品| 国产精品嫩草影院桃色| 日韩精品高清在线| 国产秀色在线www免费观看| 68精品久久久久久欧美| 996久久国产精品线观看| 国产一级精品aaaaa看| 久久理论电影| 自慰无码一区二区三区| 国精产品一区一区三区mba桃花| 一女三黑人理论片在线| 亚洲乱码日产精品bd| 久久久久久久久久一级| 精品国产精品网麻豆系列| 日本蜜桃在线观看| 人妖精品videosex性欧美| 亚洲三级av| 亚洲一区三区电影在线观看| 国产精品日韩精品欧美精品| 日本在线观看视频一区| 久久久久久久久久看片| 日本在线视频免费观看| 欧美一级生活片| 色综合久久影院| 琪琪第一精品导航| 精品人人人人| 999一区二区三区| 激情综合色综合久久| 国产一二三四区在线| 狠狠色狠色综合曰曰| 色欲av永久无码精品无码蜜桃| 久久69精品久久久久久久电影好| 国产麻豆一区| 亚洲mv在线看| 日韩经典中文字幕一区| 3d动漫精品啪啪一区二区下载 | 国产婷婷一区二区| 五月婷婷中文字幕| 精品国产一区二区三区忘忧草 | 日韩在线观看| 免费在线观看的毛片| 久久免费精品国产久精品久久久久| 黄色小视频在线免费看| 欧美岛国在线观看| 亚洲欧美成人影院| 99re在线国产| 欧美日韩国产精品一区二区亚洲| 少妇性l交大片7724com| 亚洲女人小视频在线观看| 精品人妻少妇AV无码专区| 欧美成人激情视频| 亚洲三级av| 人妻无码久久一区二区三区免费| 高清在线成人网| 国产大片中文字幕| 亚洲国产三级网| 日韩精品极品| 色综合久久av| 青青草伊人久久| 美国一级片在线观看| 欧美一区三区二区| 97人人爽人人澡人人精品| 国产精品乱子乱xxxx| 国产欧美综合一区二区三区| 国产三级国产精品| 欧美怡红院视频| 国产三区视频在线观看| 波多野结衣一区二区三区在线观看| 国产一区二区三区四区三区四| 久久久久久久穴| 一本一道综合狠狠老| 最近高清中文在线字幕在线观看| 国产日产欧美精品| 欧美激情1区| 日本一区二区在线免费观看| 91激情五月电影| 美女av在线播放| 国产精品区免费视频| 亚洲女人av| 亚洲色图27p| 亚洲国产成人精品久久| jizz免费一区二区三区| www.欧美黄色| 久久久久久一级片| 国产精品高潮呻吟av| 欧美激情视频一区二区三区不卡| 亚洲欧美成人vr| 手机免费av片| 五月天激情小说综合| 中文字幕在线观看日本| 国产精品精品软件视频| 日本成人在线视频网站| 精品无码久久久久久久| 亚洲欧美日韩天堂| 日韩在线亚洲| 无码日韩人妻精品久久蜜桃| 依依成人综合视频| 国产精品一区在线看| 成人午夜电影免费在线观看| 日本色综合中文字幕| 五月天综合在线| 久久精品人人做人人爽| 日韩大尺度在线观看| 国产高清999| 欧美伊人精品成人久久综合97| 丁香花在线电影小说观看|