成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

java自定義注解驗證手機格式的實現(xiàn)示例

瀏覽:116日期:2022-08-15 15:40:54
1、@Valid與@Validated的區(qū)別1.1 基本區(qū)別

@Valid:Hibernate validation校驗機制

@Validated:Spring Validator校驗機制,這個也是最常用的

@Validation只是對@Valid進行了二次封裝,在使用上并沒有太大區(qū)別,但在分組、注解位置、嵌套驗證等功能上有所不同

1.2 作用范圍

@Validated:用在類型、方法和方法參數(shù)上。但不能用于成員屬性(field)@Valid:可以用在方法、構(gòu)造函數(shù)、方法參數(shù)和成員屬性(field)上

1.3 分組校驗

@Validated:提供分組功能,可以在參數(shù)驗證時,根據(jù)不同的分組采用不同的驗證機制,注解中必須提供groups屬性,該屬性就是做分組的必要參數(shù)@Valid:沒有分組功能

2、未使用分組校驗的示例

注解:

/** * 手機號驗證正則 */@Target({ElementType.FIELD,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documented@Constraint(validatedBy = {PhoneValidator.class})// 指定約束處理器,也就是手機號格式驗證是哪個類來做校驗public @interface Phone { String pattern() default '^(?:(?:+|00)86)?1d{10}$'; String message() default '手機號格式非法'; Class<?>[] groups() default { }; // groups用來指定分組,可以讓校驗采取不同的機制,當前默認未指定任何分組機制,默認每次都要進行校驗 Class<? extends Payload>[] payload() default { }; // 默認分組 interface Default{ } // 分組A interface A{ }}

格式校驗處理器:

/** * 校驗處理器:做手機號碼格式驗證的核心類 */public class PhoneValidator implements ConstraintValidator<Phone, String> { // 注解對象 private Phone phone; // 初始化【Phone】對象 @Override public void initialize(Phone constraintAnnotation) { phone = constraintAnnotation; } @Override public boolean isValid(String value, ConstraintValidatorContext context) { // 獲取【Phone】對象的手機格式驗證表達式 String pattern = phone.pattern(); Pattern compile = Pattern.compile(pattern); Matcher matcher = compile.matcher(value); return matcher.matches(); }

作用類:

@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)public class Person implements Serializable { @Phone private String phone;}

注意:只有在spring或者springboot項目中才能使用,直接調(diào)用方法不會有任何效果,使用注解進行對象的屬性格式校驗時,必須配合@Validated一起使用(不一起使用,格式校驗注解將會無效),正確操作如下:

@RestController@RequestMapping('/admin/')public class PersonController { @Autowired private PersonService personService; @PostMapping('/query') public Person query(@RequestBody @Validated Person params) { return JsonResult.success(personService.queryByPhone(params)); }}

以上示例未使用分組功能,因此每次都會校驗。

3、分組校驗的示例

使用分組校驗示示例時,先要看看@Validated注解,因為分組校驗就是配合該注解一起使用的,通過閱讀注釋就能理解到value屬性就是用來指定分組的:

@Target({ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Validated { /** * Specify one or more validation groups to apply to the validation step * kicked off by this annotation. * <p>JSR-303 defines validation groups as custom annotations which an application declares * for the sole purpose of using them as type-safe group arguments, as implemented in * {@link org.springframework.validation.beanvalidation.SpringValidatorAdapter}. * <p>Other {@link org.springframework.validation.SmartValidator} implementations may * support class arguments in other ways as well. */ Class<?>[] value() default {};}

因此我們需要改動的位置有兩處:

首先是注解的作用類,注解上指定groups屬性 其次是controller中的請求的形參:在請求中形參的@Validated指定value值,也就是指定校驗生效的分組,如果請求中的分組類型【@Validated的value值】和作用類中注解所指定的分組【@Phone中的groups屬性的值】一致時,才會進行校驗,否則不會執(zhí)行校驗

作用類:

@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)public class Person implements Serializable { // 指定groups屬性 @Phone(groups = {Phone.A.class}) private String phone;}

controller層:

@RestController@RequestMapping('/admin/')public class PersonController { @Autowired private PersonService personService; @PostMapping('/query') public Person query(@RequestBody @Validated(Phone.A.class) Person params) { return JsonResult.success(personService.queryByPhone(params)); }}

此時請求中的校驗分組Phone.A.class和作用類中的校驗分組Phone.A.class一致,所以校驗會被執(zhí)行

到此這篇關(guān)于java自定義注解驗證手機格式的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)java自定義注解驗證手機格式內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
午夜私人影院久久久久| 国产成人精品综合在线观看| 国产九色sp调教91| 色视频成人在线观看免| 中文字幕制服丝袜成人av | 久久综合色综合88| 丰满白嫩尤物一区二区| 日韩一级免费一区| 国产传媒久久文化传媒| 欧美日韩一区不卡| 午夜精品免费在线观看| 亚洲免费网址| 亚洲美女免费视频| 亚洲韩日在线| 亚洲激情图片小说视频| 国产亚洲精品久久久久婷婷瑜伽| 亚洲黄一区二区三区| aa国产精品| 亚洲国产中文字幕在线视频综合 | 一区二区三区不卡视频| 狠狠色伊人亚洲综合成人| 91久久一区二区| 日韩综合小视频| 日本道精品一区二区三区| 日本91福利区| 成人激情电影免费在线观看| 日韩一区二区三区四区| 成人免费视频app| 久久在线观看免费| 视频一区视频二区在线观看| 色婷婷久久久亚洲一区二区三区 | 精品污污网站免费看| 狠狠色丁香久久婷婷综合_中| 欧美日韩性生活| 精久久久久久久久久久| 欧美一级午夜免费电影| 不卡一二三区首页| 国产日韩欧美a| 在线欧美不卡| 亚洲在线观看免费视频| 久久综合狠狠| 韩国中文字幕2020精品| 欧美草草影院在线视频| 91丨porny丨中文| 国产精品美女www爽爽爽| 亚洲青色在线| 亚洲mv在线观看| 欧美午夜精品久久久久久孕妇| 国内精品免费在线观看| 欧美成人a在线| 欧美日韩喷水| 午夜电影久久久| 欧美三级电影在线观看| www.色综合.com| 亚洲色图欧美激情| 久久久久久国产精品mv| 国产乱妇无码大片在线观看| 久久久天堂av| 一区二区日本视频| 美女精品一区二区| 精品噜噜噜噜久久久久久久久试看| 欧美一站二站| 亚洲欧美日韩小说| 裸体丰满少妇做受久久99精品| 日本女人一区二区三区| 欧美一区二区三区在线电影| 欧美大片一区| 亚洲成人在线网站| 69堂精品视频| 欧美午夜不卡| 强制捆绑调教一区二区| 精品国产一二三区| 一区二区三区国产在线| 久久综合综合久久综合| 亚洲国产高清aⅴ视频| 久热re这里精品视频在线6| 国产盗摄一区二区三区| 亚洲天天做日日做天天谢日日欢 | 欧美成人综合| 日韩激情av在线| 久久午夜羞羞影院免费观看| 一本色道久久综合| 极品瑜伽女神91| 国产欧美日韩视频一区二区| 久久婷婷激情| 成人av在线播放网址| 一区二区三区欧美日| 3d动漫精品啪啪一区二区竹菊 | 精品污污网站免费看| 国产精品v亚洲精品v日韩精品| 亚洲一区二区在线观看视频| 欧美一区二区在线不卡| 99精品国产一区二区青青牛奶| 九色综合国产一区二区三区| 欧美国产欧美综合| 日本电影亚洲天堂一区| 欧美激情91| 久久精品999| 中文字幕中文乱码欧美一区二区 | 亚洲成人三级小说| 日韩欧美电影在线| 国产精品美女久久久浪潮软件| www.欧美日韩| 三级精品在线观看| 欧美极品aⅴ影院| 欧美日韩一区在线| 亚洲久久视频| thepron国产精品| 午夜视频在线观看一区二区三区| 久久综合狠狠综合久久综合88 | 国产精品亚洲午夜一区二区三区 | 鲁大师成人一区二区三区| 97精品久久久午夜一区二区三区| 亚洲va欧美va国产va天堂影院| 国产欧美一区二区精品性色超碰| 欧美日韩国产免费一区二区 | 91免费观看国产| 久久99精品久久久久久国产越南 | 91亚洲国产成人精品一区二区三 | 久久亚洲一区二区| 国产在线成人| 国产成人鲁色资源国产91色综 | 粉嫩aⅴ一区二区三区四区 | 日韩欧美美女一区二区三区| 色视频成人在线观看免| 亚洲精品1区| 不卡视频在线看| 免费av成人在线| 亚洲在线中文字幕| 国产精品午夜电影| 日韩一级二级三级| 久久久精品日韩| 在线成人国产| 91一区一区三区| 国产精品小仙女| 日本欧美一区二区三区| 亚洲永久免费视频| 国产精品久久夜| 精品久久五月天| 5858s免费视频成人| 91传媒视频在线播放| 亚洲欧美日韩在线观看a三区 | 亚洲一区在线看| 国产三级欧美三级日产三级99| 欧美老年两性高潮| 91九色02白丝porn| 国产精品欧美日韩一区| 狠狠色丁香久久综合频道| 成人禁用看黄a在线| 国产一区二区成人久久免费影院| 日韩激情一区二区| 日韩影视精彩在线| 亚洲主播在线播放| 亚洲蜜臀av乱码久久精品蜜桃| 国产欧美精品国产国产专区 | 欧美视频一区| 91麻豆国产在线观看| 成人av在线资源| 国产精品一二三在| 国精产品一区一区三区mba桃花 | 色老汉一区二区三区| 久久精品综合| 亚洲一区二区三区免费观看 | 884aa四虎影成人精品一区| 日本韩国一区二区| 久久久水蜜桃| 久久国产精品久久精品国产| 国产精品日本| 国产欧美高清| 亚洲精品乱码视频| 亚洲第一区色| 91久久综合| 亚洲国产高清视频| 亚洲精品1区| 野花国产精品入口| 国产精品日韩高清| 国产精品毛片| 久久久夜夜夜| 色妹子一区二区| 欧美在线你懂得| 欧美色电影在线| 欧美一区二区三区视频在线| 日韩免费电影网站| 精品久久免费看| 2023国产精华国产精品| 国产免费久久精品| 国产精品成人免费| 亚洲愉拍自拍另类高清精品| 偷拍日韩校园综合在线| 日韩av一区二| 麻豆精品久久精品色综合| 精品一区二区三区视频在线观看 | 激情六月婷婷久久| 国产成人综合亚洲网站| 成人免费黄色在线| 欧美在线亚洲综合一区| 国产精品地址| 亚洲久久一区| 一本色道久久综合亚洲91| 在线精品视频免费观看|