欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springmvc使用@notNull注解驗證請求參數(shù)方式

 更新時間:2024年01月04日 10:20:43   作者:__WanG  
這篇文章主要介紹了springmvc使用@notNull注解驗證請求參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>

處理請求時, 有些參數(shù)是必傳或者必須遵循某些規(guī)則的, 如果針對每個請求都寫一遍驗證的話相當繁瑣, 而且代碼維護起來也麻煩, 正好框架將參數(shù)校驗的功能抽象處理啊了, 我們可以利用這個完成80%的校驗場景

使用方式

使用起來很簡單, 只需要加上幾個注解即可

@NotNull

在需要驗證的非空字段前面加上@NotNull注解(注解還可設(shè)置提示語), 如下

@NotNull注解

@Min

有寫數(shù)值類型的需要限制范圍, 例如: 時間需要大于0

時間戳應(yīng)該大于0

@valid

在需要校驗的接口的入?yún)⑶凹由?code>@valid注解

入?yún)⑶凹由? src=

驗證生效

這兩個地方加上注解就可以了

生效圖示

進階

有時候默認的非空或者范圍校驗不能滿足部分定制化的需求

我們可以通過自定義校驗注解來按我們的凡是校驗數(shù)據(jù)

注解接口

定義一個自己的注解(檢驗邏輯入口)

注意:

Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};

這兩個是必須的…

@Target(value= {METHOD, FIELD, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy = CheckEvaluationKeyValidator.class)
@Documented
public @interface CheckEvaluationKey {
    String message() default "{CheckEvaluationKey}";

    Class<?>[] groups() default {};
    
    Class<? extends Payload>[] payload() default {};

    String evaluationKey() default "";
}

校驗邏輯實現(xiàn)

實現(xiàn)校驗邏輯, 需要在自定義注解中指定使用的校驗邏輯

@Constraint(validatedBy = CheckEvaluationKeyValidator.class)

系統(tǒng)就會更具注解自動進入我們的校驗邏輯

public class CheckEvaluationKeyValidator implements ConstraintValidator<CheckEvaluationKey, String> {

    private String checkEvaluationKey;
    
    @Override
    public void initialize(CheckEvaluationKey constraintAnnotation) {
        this.checkEvaluationKey = constraintAnnotation.evaluationKey();
    }
    
    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        
        if (JudgeUtil.isNull(checkEvaluationKey)) {
            String evaluationName = EvaluationEnum.getEvaluationNameWithOutAssert(value);
            return JudgeUtil.isPresent(evaluationName);
            
        } else {
            return JudgeUtil.equals(value, checkEvaluationKey);
        }
    }
}

自定義注解使用

自定義注解使用

其他校驗注解

  • @Null: 被注釋的元素必須為null
  • @NotNull: 被注釋的元素不能為null
  • @AssertTrue: 被注釋的元素必須為true
  • @AssertFalse: 被注釋的元素必須為false
  • @Min(value): 被注釋的元素必須是一個數(shù)字,其值必須大于等于指定的最小值
  • @Max(value): 被注釋的元素必須是一個數(shù)字,其值必須小于等于指定的最大值
  • @DecimalMin(value): 被注釋的元素必須是一個數(shù)字,其值必須大于等于指定的最小值
  • @DecimalMax(value): 被注釋的元素必須是一個數(shù)字,其值必須小于等于指定的最大值
  • @Size(max,min): 被注釋的元素的大小必須在指定的范圍內(nèi)。
  • @Digits(integer,fraction): 被注釋的元素必須是一個數(shù)字,其值必須在可接受的范圍內(nèi)
  • @Past: 被注釋的元素必須是一個過去的日期
  • @Future: 被注釋的元素必須是一個將來的日期
  • @Pattern(value): 被注釋的元素必須符合指定的正則表達式。
  • @Email: 被注釋的元素必須是電子郵件地址
  • @Length: 被注釋的字符串的大小必須在指定的范圍內(nèi)
  • @NotEmpty: 被注釋的字符串必須非空
  • @Range: 被注釋的元素必須在合適的范圍內(nèi)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot啟動失敗的原因及其解決方法

    SpringBoot啟動失敗的原因及其解決方法

    對于springboot的啟動失敗,相信大家都有經(jīng)歷,但是為什么會啟動失敗,以及怎么解決都只能通過日志進行查看,在這里,我會將常見的springboot啟動失敗的報錯一一展示,需要的朋友可以參考下
    2024-06-06
  • Java編寫日志手機號脫敏工具類

    Java編寫日志手機號脫敏工具類

    在開發(fā)過程中,很容易將用戶敏感信息,例如手機號碼、身份證等,打印在日志平臺,本文將利用Java編寫一個日志手機號脫敏工具類,感興趣的可以了解下
    2024-12-12
  • springcloud config配置讀取優(yōu)先級過程詳解

    springcloud config配置讀取優(yōu)先級過程詳解

    這篇文章主要介紹了springcloud config配置讀取優(yōu)先級過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Spring為什么不推薦使用@Autowired注解詳析

    Spring為什么不推薦使用@Autowired注解詳析

    @Autowired 注解的主要功能就是完成自動注入,使用也非常簡單,但這篇文章主要給大家介紹了關(guān)于Spring為什么不推薦使用@Autowired注解的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Spring?Lifecycle?和?SmartLifecycle區(qū)別面試精講

    Spring?Lifecycle?和?SmartLifecycle區(qū)別面試精講

    這篇文章主要為大家介紹了Spring?Lifecycle和SmartLifecycle的區(qū)別面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • SpringBoot讀取yaml文件操作詳解

    SpringBoot讀取yaml文件操作詳解

    YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標記語言)的遞歸縮寫。在開發(fā)的這種語言時,YAML 的意思其實是:“Yet Another Markup Language”(仍是一種標記語言),本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • springboot使用@value讀取配置的方法

    springboot使用@value讀取配置的方法

    今天我們來講一下如何通過python來實現(xiàn)自動登陸京東,以及簽到領(lǐng)取金幣。本文圖文實例相結(jié)合給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-10-10
  • SpringBoot中Dozer的使用小結(jié)

    SpringBoot中Dozer的使用小結(jié)

    dozer是用來兩個對象之間屬性轉(zhuǎn)換的工具,有了這個工具之后,我們將一個對象的所有屬性值轉(zhuǎn)給另一個對象時,就不需要再去寫重復的set和get方法了,下面介紹下SpringBoot中Dozer的使用,感興趣的朋友一起看看吧
    2022-03-03
  • Java 實現(xiàn)麥克風自動錄音

    Java 實現(xiàn)麥克風自動錄音

    這篇文章主要介紹了Java 實現(xiàn)麥克風自動錄音的示例代碼,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • java網(wǎng)絡(luò)編程之群聊功能

    java網(wǎng)絡(luò)編程之群聊功能

    這篇文章主要為大家詳細介紹了java網(wǎng)絡(luò)編程之群聊功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論