久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

spring MVC實踐需要注意的地方

瀏覽:7日期:2023-07-20 17:07:25

使用spring mvc提供restful風格的接口,實現(xiàn)前后端分離,后端只提供數據接口,而不做頁面渲染。因此可對接口做統(tǒng)一處理:

請求參數校驗 響應數據格式 全局異常處理

通過以上統(tǒng)一處理,開發(fā)人員可專注于業(yè)務處理,把校驗,異常響應的邏輯分離出來。

請求參數校驗:對于url中的參數 如果添加@RequestParam,但沒有傳遞該參數,則拋出MissingServletRequestParameterException異常 如果添加@Max等注解,同時不滿足該條件,拋出ConstraintViolationException 或BindException異常 對于request body請求體中的參數 Bean前添加@RequestBody,如果沒有請求體,拋出HttpMessageNotReadableException異常 在bean前添加@Validate注解,bean中屬性添加@Max,@NotNull等注解,即對響應屬性進行校驗,如果不滿足,拋出MethodArguementNotValidException @Validate內可添加group,表明需要校驗的操作,@Max可添加groups,當groups包含group時,則進行校驗。 Bean中也可自定義注解,通過實現(xiàn)ConstraintValidator接口自定義校驗邏輯。如果校驗失敗,會拋出MethodArgumentNotValidException異常,

這些異常都被全局異常處理攔截,返回異常信息。

響應數據格式: 建立統(tǒng)一響應類JsonResp<T>,泛型T為業(yè)務響應內容,可為String,List,java bean等。定義屬性result表明響應是否成功,響應碼code,響應碼信息msg。這里code及msg與全局異常處理的響應枚舉類相對應。 定義ResponseBodyhandler實現(xiàn)ResponseBodyAdvice接口,當響應類型為json時,如果響應類型為JsonResp,直接響應給客戶端;如果不是,則new JsonResp,將響應體set進去,響應給客戶端。 在controller的方法返回類型可任意定義String,List,java bean,在ResponseBodyhandler轉化為統(tǒng)一JsonResp形式。如果是流文件,則直接返回不會轉化為JsonResp形式。這樣可將響應包裝成統(tǒng)一的JsonResp數據格式,便于前端處理。全局異常處理 建立響應枚舉類ResponseEnum,定義業(yè)務需要的響應碼及響應碼信息 建立自定義異常類BaseException,繼承運行時異常RuntimeException,初始化時設置ResponseEnum。 建立異常捕捉類GlobalExceptionAspect,類中添加@RestCOntrollerAdvice注解,使用@Exceptional捕捉參數校驗異常和自定義異常BaseException。 最外層捕捉Exception,捕捉未定義的異常 如果遇到業(yè)務報錯,throw new BaseException(ResponseEnum.xxx),拋出自定義異常,該異常由GlobalExceptionAspect切面捕捉,統(tǒng)一響應至客戶端 統(tǒng)一定義異常響應碼,便于查看

避免在業(yè)務代碼里進行異常的響應,簡化代碼

這些統(tǒng)一處理的本質是使用fliter或者aop攔截請求和響應參數進行通用邏輯處理,因此,可對請求進行敏感詞過濾,參數加解密等處理,解耦業(yè)務邏輯。

以上就是spring MVC實踐需要注意的地方的詳細內容,更多關于spring MVC實踐的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
主站蜘蛛池模板: 定安县| 松潘县| 景德镇市| 武陟县| 内丘县| 吉首市| 江安县| 白玉县| 通许县| 驻马店市| 蛟河市| 丁青县| 白河县| 宜章县| 连江县| 左权县| 新源县| 赤壁市| 岢岚县| 银川市| 丹阳市| 丘北县| 长乐市| 九江县| 札达县| 喀喇沁旗| 鄂伦春自治旗| 岑巩县| 来凤县| 广南县| 团风县| 宁远县| 新宁县| 洪湖市| 通化县| 玛沁县| 蕉岭县| 五河县| 永年县| 泸州市| 万全县|