亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring boot進行參數校驗的方法實例詳解

2024-07-14 08:40:37
字體:
來源:轉載
供稿:網友

Spring boot開發web項目有時候我們需要對controller層傳過來的參數進行一些基本的校驗,比如非空、整數值的范圍、字符串的長度、日期、郵箱等等。Spring支持JSR-303 Bean Validation API,可以方便的進行校驗。

使用注解進行校驗

先定義一個form的封裝對象

class RequestForm {  @Size(min = 1, max = 5)  private String name;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }}

其中name這個字段用Size注解限制長度1到5。Size是javax.validation包中的constraint注解。

 在使用時用@Valid注解表示要校驗這個bean。

  @ResponseBody  @GetMapping(value = "bean")  public String validate(@Valid RequestForm request) {    System.out.println(request.getName());    return "OK";  }

自定義注解

如果內置的注解不夠用,可以自定義注解。

 比如先定義一個注解NameConstraint,限制name字段只能從特定數據中選取。

@Target({ ElementType.FIELD, ElementType.PARAMETER })@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = NameConstraintValidator.class)@interface NameConstraint {  String[] allowedValues();  Class<?>[] groups() default {};  Class<? extends Payload>[] payload() default {};  String message();}

其中allowedValues表示合法的取值范圍,message是校驗失敗的顯示信息。

message、groups、payload是hibernate validator要求的字段,想了解的請看官方文檔

 再定義一個validator做真正的校驗

class NameConstraintValidator implements ConstraintValidator<NameConstraint, String> {  private String[] validValues;  @Override  public void initialize(NameConstraint constraintAnnotation) {    validValues = constraintAnnotation.allowedValues();  }  @Override  public boolean isValid(String value, ConstraintValidatorContext context) {    for (String s : this.validValues) {      if (s.equals(value)) {        return true;      }    }    return false;  }}

在form bean中按如下方式使用

class RequestFormWithCustomConstraint {  @NameConstraint(allowedValues = { "bar", "foo" }, message = "只允許bar,foo")  private String name;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }}

直接校驗參數

只有一個name字段,不想封裝一個對象怎么辦?可以直接校驗該參數

@Controller@Validated@RequestMapping(value = "validator")public class ParameterValidatorDemoController {  @ResponseBody  @GetMapping(value = "simple")  public String validateParameter(@Size(min = 1, max = 5) String name) {    System.out.println(name);    return "OK";  }}

controller上面的@Validated注解則告訴spring需要掃描這個類,來檢查其中的constraint注解。

詳細信息可以參考官方文檔有關章節

https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#boot-features-validation
https://docs.spring.io/spring/docs/4.3.16.RELEASE/spring-framework-reference/htmlsingle/#validation-beanvalidation

代碼在github

https://github.com/kabike/spring-boot-demo

總結

以上所述是小編給大家介紹的Spring boot進行參數校驗的方法實例詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
2020国产精品视频| 成人黄色在线免费| 一本色道久久综合狠狠躁篇的优点| 成人av资源在线播放| 亚洲精品小视频在线观看| 国产成人avxxxxx在线看| 欧美性xxxx极品hd满灌| 亚洲区中文字幕| 欧美激情中文字幕在线| 国产亚洲激情视频在线| 色综合久综合久久综合久鬼88| 一区二区成人av| 国产日韩欧美成人| 欧美三级欧美成人高清www| 国产精品第10页| 国产女同一区二区| 91色中文字幕| 午夜精品视频在线| 国产精品老女人精品视频| 日韩在线观看网址| 日韩成人在线视频网站| 亚洲人成在线观看| 国产精品91久久久久久| 中文字幕欧美亚洲| 欧美极品少妇xxxxⅹ喷水| 日本精品久久电影| 中文字幕欧美日韩va免费视频| 精品露脸国产偷人在视频| 亚洲欧美日本另类| 久99九色视频在线观看| 亚洲欧美日韩网| 欧美日韩亚洲国产一区| 久久久久久18| 亚洲偷熟乱区亚洲香蕉av| 欧美精品videos| 国产经典一区二区| 在线视频日本亚洲性| 少妇高潮久久77777| 欧美日韩中文字幕| xxxxx成人.com| 成人激情在线播放| 色婷婷**av毛片一区| 情事1991在线| 日韩在线视频中文字幕| 欧美日韩国产综合新一区| 国产精品www网站| 91亚洲精华国产精华| 91在线视频九色| 欧美理论电影网| 国产日产久久高清欧美一区| 在线看片第一页欧美| 日韩成人小视频| 热久久免费视频精品| 亚州精品天堂中文字幕| 91在线观看欧美日韩| 国产精品嫩草视频| 中文字幕av一区二区三区谷原希美| 欧美极品少妇xxxxⅹ喷水| 久久久www成人免费精品| 欧美日韩精品二区| 午夜剧场成人观在线视频免费观看| 亚洲美女中文字幕| 2019中文字幕全在线观看| 亚洲国产美女久久久久| 精品人伦一区二区三区蜜桃网站| 亚洲精品电影在线| 中文亚洲视频在线| 亚洲人精选亚洲人成在线| 国产精品高潮呻吟久久av黑人| 欧美猛交ⅹxxx乱大交视频| 亚洲欧洲日产国码av系列天堂| 国产a∨精品一区二区三区不卡| 久久九九全国免费精品观看| 亚洲一区二区精品| 亚洲精品自拍偷拍| 国产精品激情av电影在线观看| xvideos亚洲人网站| 久久久久成人网| 国产精品一区二区三区在线播放| 欧美大片在线免费观看| 国产精品美女免费视频| 国产精品久久久久久久久久久久久| 亚洲国产精品久久久久秋霞不卡| 成人免费视频网| 亚洲欧美日韩国产成人| 久久99亚洲热视| 日韩av电影国产| 欧美激情在线视频二区| 色视频www在线播放国产成人| 欧美电影免费看| 欧美俄罗斯乱妇| 国产999精品久久久| 88xx成人精品| 欧美成人免费在线观看| 97免费中文视频在线观看| 国产精品欧美日韩一区二区| 成人av资源在线播放| 在线观看成人黄色| 久久人体大胆视频| 欧美性videos高清精品| 麻豆精品精华液| 国产精品96久久久久久又黄又硬| 国产精品久久色| 国产精品99导航| 欧美精品在线免费播放| 日韩成人在线视频| 中文字幕亚洲一区在线观看| 欧美极品第一页| 欧美特黄级在线| 中文字幕亚洲欧美日韩在线不卡| 亚洲国产另类久久精品| 国产精品视频不卡| 日韩欧美亚洲一二三区| 日韩在线视频国产| 国产成人短视频| 亚洲综合色av| 国产精品91在线| 欧美激情影音先锋| 在线成人中文字幕| 日韩美女福利视频| 亚洲人成网在线播放| 黑人精品xxx一区| 国产精品男女猛烈高潮激情| 亚洲福利视频专区| 久久人人爽人人爽爽久久| 精品一区二区三区电影| 精品久久久一区二区| 国产欧美精品一区二区三区介绍| 日韩免费电影在线观看| 日韩精品在线电影| 欧美性高潮床叫视频| 日韩av影视综合网| 亚洲人成绝费网站色www| 97香蕉久久超级碰碰高清版| 欧美一二三视频| 亚洲自拍偷拍视频| 国产精品1区2区在线观看| 亚洲精品在线看| 丝袜美腿亚洲一区二区| 国产色婷婷国产综合在线理论片a| 欧美日韩在线免费观看| 久久99热精品| 中文国产成人精品久久一| 国产精品夜色7777狼人| 中文字幕av一区二区三区谷原希美| 欧美一区二区三区……| 亚洲电影免费观看高清| 国内精品久久久久久影视8| 亚洲色图偷窥自拍| 97av在线视频免费播放| 国产午夜精品全部视频在线播放| 麻豆国产精品va在线观看不卡| 亚洲国产天堂网精品网站| 欧美韩国理论所午夜片917电影| 日韩精品极品视频免费观看| 日韩电影中文字幕一区| 久久精品国产一区二区三区| 91精品国产网站| 国产精品第3页| 国产精品午夜一区二区欲梦| 久久久久久久久爱| 国自产精品手机在线观看视频| 久久国产精品久久久| 国产啪精品视频网站|