亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

Java Validation方法入參校驗實現過程解析

瀏覽:4日期:2022-08-21 08:33:38

一.前言

在日常的開發中,經常需要對方法參數進行校驗(非空、長度等)。如果采用hardcode去校驗(if..else..),會造成代碼冗余,復用性低,導致維護成本比較高。借助Validation組件,可以很方便地通過注解來校驗參數。

二.Java Validation組件

JSR

JSR 是一種規范標準,規定了一些校驗規范的注解,位于javax.validation.constraints包下,只提供規范不提供實現,如@NotNull,@Size 等

Hibernate Validation

hibernate Validation 與 hibernate ORM框架沒有半毛錢關系,它提供了JSR的實現,位于org.hibernate.validator.constraints包下。

三.用法

引入依賴:

<dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId></dependency>

手動添加bean :

對實體類添加注解:

@DatapublicclassPeople {@NotNull(message = '姓名不能為空')privateStringname;@Min(value = 1, message = '年齡不能小于1歲')privateInteger size;}

Controller層上用法:

如果在Spring的Controller層引用以上Java Bean對象,則需要加上@Valid注解,用法如下:

@RestController@RequestMapping('/api')publicclassPeopleController {@AutowiredprivatePeopleService peopleService;@RequestMapping('/addPeople')publicStringaddPeople(@Valid@RequestBodyPeople people) {peopleService.addPeople(people);return'ok';}}

Service層上用法:

@Valid注解,當我們用Service接口層的時候,會發現參數校驗邏輯是不生效的。要向讓@Valid注解在controller層以外的地方生效,必須配合@Validated來使用。這是因為Spring給我們創建了一個用于參數校驗的AOP切面邏輯,過濾方式就是class被@Validated修飾的bean對象。所以我們可以使用@Validated來修飾我們的service層實現類:

@Validated public interface PeopleService { voidaddPeople(@ValidPeople people);}

Controller層不需要@Validated注解是因為在Spring的controller層有數據綁定和校驗的過程,默認就會對@Valid修飾的方法參數使用Validator來做校驗邏輯。

四.原理

1.利用Spring ioc,注入MethodValidationPostProcessor和LocalValidatorFactoryBean。

2.利用Spring ioc提供的擴展點(BeanPostProcessor, InitializingBean),初始化攔截器MethodValidationInterceptor

3.MethodValidationPostProcessor用來生成和植入攔截器MethodValidationInterceptor,調用方法時自動攔截。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 在线观看的黄网 | 国产成人91青青草原精品 | 国产肥老妇视频∵ | 国产91精品新入口 | 免费看影片的网站入口 | 色婷婷久久综合中文网站 | 日韩精品欧美国产精品亚 | 国产精品日本欧美一区二区 | 伦理一区二区 | 一区二区不卡免费视频 | 欧美毛片日韩一级在线 | 亚欧日韩毛片在线看免费网站 | 免费观看h片 | 国产日韩欧美综合一区 | 国产精品女人在线观看 | 黄色录像毛片 | 亚洲免费不卡 | 国产亚洲精品久久久极品美女 | 国产麻豆视频在线观看 | 伊人色综合久久天天爱 | 热99re久久精品2久久久 | 日本特级黄色 | 国产福利91精品一区二区 | 日本黄色绿像 | 精品欧美一区二区三区在线观看 | 黄色录像视频网站 | 四库影库免费永久在线 | 香蕉免费在线视频 | 九九免费高清在线观看视频 | 午夜精品国产爱在线观看不卡 | 亚州综合激情另类久久久 | 成人国产在线24小时播放视频 | 国产日韩在线 | 特级黄色录像片 | 最新在线黄色网址 | 国产精品自拍第一页 | 国产精品馆 | 91嫩草国产在线观看免费 | 久久综合久久精品 | 亚洲区视频 | 国产在线主播 |