日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java 逻辑校验工具_SpringBoot2.0实战(10)整合fluent-validator优雅业务校验

發(fā)布時(shí)間:2023/11/27 生活经验 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 逻辑校验工具_SpringBoot2.0实战(10)整合fluent-validator优雅业务校验 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

相關(guān)知識

FluentValidator是一個(gè)工具類庫,使用流式(Fluent Interface)調(diào)用風(fēng)格讓校驗(yàn)跑起來更優(yōu)雅,代碼更簡潔,同時(shí)驗(yàn)證器(Validator)可以做到開閉原則,實(shí)現(xiàn)最大程度的復(fù)用。

github地址:https://github.com/neoremind/fluent-validator

中文使用手冊:http://neoremind.com/2016/02/java的業(yè)務(wù)邏輯驗(yàn)證框架fluent-validator/

特性:

  • 驗(yàn)證邏輯與業(yè)務(wù)邏輯不再耦合,摒棄原來不規(guī)范的驗(yàn)證邏輯散落的現(xiàn)象。
  • 校驗(yàn)器各司其職,好維護(hù),可復(fù)用,可擴(kuò)展,一個(gè)校驗(yàn)器(Validator)只負(fù)責(zé)某個(gè)屬性或者對象的校驗(yàn),可以做到職責(zé)單一,易于維護(hù),并且可復(fù)用。
  • 流式風(fēng)格(Fluent Interface)調(diào)用。
  • 使用注解方式驗(yàn)證,可以裝飾在屬性上,減少硬編碼量。
  • 支持JSR 303 – Bean Validation標(biāo)準(zhǔn),也就是說可以兼容 Hibernate Validator。
  • Spring良好集成
  • 回調(diào)給予你充分的自由度,驗(yàn)證過程中發(fā)生的錯誤、異常,驗(yàn)證結(jié)果的返回,開發(fā)人員都可以定制。

目標(biāo)

替換 hibernate-validator 為 fluent-validator,實(shí)現(xiàn)對入?yún)⒌男r?yàn)及異常輸出

操作步驟

添加依賴

添加 fluent-validator 的依賴

因?yàn)?spring-boot 默認(rèn)使用 logback 作為日志輸出組件,所以在引入的時(shí)候需要去掉 fluent-validate 自身的 slf4j

注冊 Fluent-validator

fluent-validate 與 spring 結(jié)合使用 annotation 方式進(jìn)行參數(shù)校驗(yàn),需要借助于 spring 的 AOP,fluent-validate 提供了處理類 FluentValidateInterceptor,但是 fluent-validate 提供的默認(rèn)驗(yàn)證回調(diào)類 DefaultValidateCallback 對校驗(yàn)失敗的情況并沒有處理,所以需要自行實(shí)現(xiàn)一個(gè)

  • 自定義異常回調(diào)類
注冊 IOC

注冊 ValidateCallback 及 FluentValidateInterceptor,并且配置一個(gè) AOP 規(guī)則

全局異常處理

編碼

  • 添加校驗(yàn)規(guī)則

為業(yè)務(wù)類添加校驗(yàn)規(guī)則,此處,并沒有添加 fluent-validate 注解,而是保持了原來的 hibernate-validate

使用校驗(yàn)

在 Controller 接口的參數(shù)前面添加 @FluentValid 注解,替換掉 hibernate-validate 的 @Valid 注解

啟動類

返回結(jié)果為

源碼地址

本章源碼 : hhttps://github.com/caiyuanzi-song/boot.git

結(jié)束語

fluent-validate 可以全方位兼容 hibernate-validate,基于 spring 的 AOP 可以提供基于注解的方法入?yún)⑿r?yàn),同時(shí)也可以提供流式編程的工具類業(yè)務(wù)校驗(yàn),替代 hibernate-validate 的同時(shí)提供了更多擴(kuò)展性。

擴(kuò)展

實(shí)現(xiàn)自定義校驗(yàn)

  • 實(shí)現(xiàn)自定義校驗(yàn)類

Validator 接口定義了三個(gè)方法,解釋如下

使用自定義校驗(yàn)

添加 sex 屬性,使用 @FluentValidate 注解標(biāo)記使用自定義校驗(yàn)

總結(jié)

以上是生活随笔為你收集整理的java 逻辑校验工具_SpringBoot2.0实战(10)整合fluent-validator优雅业务校验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。