日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

java自定義注解驗證手機格式的實現示例

瀏覽:152日期:2022-08-15 15:40:54
1、@Valid與@Validated的區別1.1 基本區別

@Valid:Hibernate validation校驗機制

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

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

1.2 作用范圍

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

1.3 分組校驗

@Validated:提供分組功能,可以在參數驗證時,根據不同的分組采用不同的驗證機制,注解中必須提供groups屬性,該屬性就是做分組的必要參數@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項目中才能使用,直接調用方法不會有任何效果,使用注解進行對象的屬性格式校驗時,必須配合@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屬性的值】一致時,才會進行校驗,否則不會執行校驗

作用類:

@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一致,所以校驗會被執行

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

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91国语精品自产拍| 亚洲精品乱码| 国产精品传媒麻豆hd| 日韩高清中文字幕一区二区| 国产日韩欧美一区二区三区在线观看| 亚洲手机视频| 免费视频最近日韩| 国精品产品一区| 欧美视频久久| 荡女精品导航| 清纯唯美亚洲综合一区| 午夜在线精品| 综合一区av| 欧美日韩亚洲一区三区| 久久这里只有| 91亚洲一区| 国产精品av久久久久久麻豆网| 激情视频一区二区三区| 日韩中文一区二区| 国产精品蜜芽在线观看| 奇米狠狠一区二区三区| 精品视频高潮| 婷婷亚洲综合| 日本免费在线视频不卡一不卡二| 日韩一区二区在线免费| 久久亚洲不卡| 国产精品久久久久久模特 | 九九综合九九| 久久最新视频| 国产精品片aa在线观看| 一区二区三区四区日本视频| 欧美.日韩.国产.一区.二区| 男人天堂欧美日韩| 国产欧美日韩视频在线| 国产精品成人自拍| 久久久久欧美精品| 蜜臀va亚洲va欧美va天堂| 国产探花在线精品一区二区| 国产精品专区免费| 免费中文字幕日韩欧美| 国产精品s色| 日韩和的一区二在线| 亚洲欧美日韩国产综合精品二区 | 欧美日韩精品一区二区视频| 视频一区中文字幕| 国产欧美成人| 成人小电影网站| 亚洲一区二区毛片| 国产精品黄色片| 免费视频国产一区| 国产日韩欧美一区二区三区 | 99久久久久国产精品| 日本aⅴ亚洲精品中文乱码| 三上悠亚国产精品一区二区三区| 亚洲三级在线| 久久久久99| 亚洲经典在线| 国产精品magnet| 日韩中文字幕无砖| 国产精品亚洲欧美一级在线| 久久国内精品自在自线400部| 国产亚洲电影| 性欧美xxxx免费岛国不卡电影| 欧美在线影院| 国产日韩一区二区三区在线| 福利欧美精品在线| 蜜臀久久99精品久久久久久9 | 97久久超碰| 欧美成人亚洲| 欧美激情日韩| 美女被久久久| 麻豆国产欧美一区二区三区 | 精品久久国产一区| 亚洲精品婷婷| 一区二区三区视频免费观看| 国产毛片一区二区三区| 夜久久久久久| 国产传媒在线观看| 国产精品亚洲综合久久| 美女国产精品| 久久久噜噜噜| 精品久久91| 国产探花一区| 亚洲一区二区毛片| 亚洲精品一级二级| 美女免费视频一区| 亚洲精品九九| 欧美日韩精品免费观看视频完整| 另类欧美日韩国产在线| 亚洲精选av| 国产综合精品| 超碰99在线| 国产欧美在线观看免费| 蜜桃视频一区二区三区在线观看| 欧美天堂视频| 黄色欧美在线| 欧美精品aa| 日本一区二区三区中文字幕| 亚洲欧美一区在线| 日韩黄色大片| 亚州av乱码久久精品蜜桃| 国产一区二区三区黄网站 | 99香蕉国产精品偷在线观看| 精品国产亚洲一区二区三区| 91成人福利| 911亚洲精品| 亚洲精品大片| 日韩va欧美va亚洲va久久| 天堂va欧美ⅴa亚洲va一国产| 久久精品欧洲| 免费在线亚洲欧美| 中文视频一区| 久久国产成人| 热久久久久久久| 欧美专区18| 亚洲一区二区三区四区五区午夜 | 久久久久亚洲精品中文字幕| 国产探花在线精品| 国产亚洲精aa在线看| 欧美日韩99| 欧美日韩一区二区高清| 日本成人在线视频网站| 综合色就爱涩涩涩综合婷婷| 国产精品日韩| 免费日韩av| 亚洲bt欧美bt精品777| 欧美专区18| 日韩一区精品字幕| 蜜桃91丨九色丨蝌蚪91桃色| 久久亚洲一区| 亚洲精品在线a| 日本不卡中文字幕| 国产美女视频一区二区| 国产乱码精品一区二区三区四区 | 99久久精品国产亚洲精品| 日韩成人高清| 91成人超碰| 老鸭窝毛片一区二区三区| 一区二区亚洲视频| 欧美精品福利| 麻豆精品av| av资源中文在线| 亚洲午夜视频| 中文久久精品| 少妇精品在线| 国产精品chinese| 国内精品伊人| 99精品综合| 夜夜嗨网站十八久久| 国产亚洲精品自拍| 午夜视频一区二区在线观看| 欧美日韩网址| 日韩1区在线| 亚洲激情中文| 日本在线不卡视频| 日韩av有码| 国产一区二区高清| 国产亚洲一区二区三区啪| 成人在线视频中文字幕| 亚洲精品99| 日韩欧美中文字幕在线视频| 嫩呦国产一区二区三区av| 亚洲精品成人图区| 欧美一区=区| 国产毛片精品久久| 日韩中文影院| 亚洲久久在线| 色婷婷亚洲mv天堂mv在影片| 欧美美女一区| 日韩精品一区二区三区免费视频| 免费亚洲一区| 亚洲手机视频| 日本在线观看不卡视频| 国产精品麻豆久久| 香蕉成人久久| 精品少妇av| 快she精品国产999| 精品精品99| 男人的天堂久久精品| 欧美激情aⅴ一区二区三区| 亚洲不卡av不卡一区二区| 免费成人在线观看| 91亚洲自偷观看高清| 蜜桃传媒麻豆第一区在线观看| 国产精品一区二区三区四区在线观看| av高清不卡| 日本不卡不码高清免费观看 | 蜜桃久久av一区| 国产91欧美| 亚洲三级网址| 999久久久精品国产| 日韩精品91亚洲二区在线观看| 97精品在线| 天堂久久av| 人人精品亚洲| 国产精品对白久久久久粗| 玖玖玖国产精品| 日本免费一区二区三区四区| 国产一级成人av| 欧美中文日韩|