91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Spring boot怎么進行參數校驗

發布時間:2021-05-18 17:33:27 來源:億速云 閱讀:136 作者:Leah 欄目:編程語言

本篇文章為大家展示了使用Spring boot怎么進行參數校驗,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

使用注解進行校驗

先定義一個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";
  }
}

springboot是什么

springboot一種全新的編程規范,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程,SpringBoot也是一個服務于框架的框架,服務范圍是簡化配置文件。

上述內容就是使用Spring boot怎么進行參數校驗,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌拉特前旗| 浪卡子县| 喀喇| 大安市| 秭归县| 宣城市| 固始县| 会昌县| 阳朔县| 阳高县| 三都| 临泽县| 新巴尔虎左旗| 淮滨县| 赞皇县| 东平县| 德格县| 九江市| 大悟县| 工布江达县| 蒙城县| 双桥区| 铜鼓县| 鸡西市| 长武县| 寿阳县| 东乡| 松潘县| 桓台县| 宾阳县| 上思县| 临泽县| 仁布县| 五莲县| 深泽县| 峨眉山市| 云霄县| 磴口县| 剑河县| 克东县| 郑州市|