最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于@NotNull注解失效的原因之一

 更新時(shí)間:2024年01月04日 16:03:39   作者:我是時(shí)生  
這篇文章主要介紹了關(guān)于@NotNull注解失效的原因之一,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@NotNull注解失效原因之一

給String類型加上@NotNull注解時(shí),只有傳入的參數(shù)為空時(shí)才會報(bào)異常,當(dāng)傳入的為空字符串時(shí)并不會報(bào)異常,就會出現(xiàn)報(bào)異常的現(xiàn)象

傳參為空指的是該參數(shù)就沒有傳,為空字符串指的是有該參數(shù)但是是雙引號""

Lombok判斷注解怎么使用,

梳理下來為

  • @NotEmpty 用在集合類上
  • @NotBlank 用在String上
  • @NotNull 用在基本類型上

最后最重要的是,在接口參數(shù)前加注解’@Validated’

@Valid注解是什么

@Valid

用于驗(yàn)證注解是否符合要求,直接加在變量user之前,在變量中添加驗(yàn)證信息的要求,當(dāng)不符合要求時(shí)就會在方法中返回message 的錯(cuò)誤提示信息。

@RestController
@RequestMapping("/user")
public class UserController {
    @PostMapping
    public User create (@Valid @RequestBody User user) {
        System.out.println(user.getId());
        System.out.println(user.getUsername());
        System.out.println(user.getPassword());
        user.setId("1");
        return user;
    }
}    

然后在 User 類中添加驗(yàn)證信息的要求:

public class User {
    private String id;  
 
    @NotBlank(message = "密碼不能為空")
    private String password;
}

@NotBlank 注解所指的 password 字段,表示驗(yàn)證密碼不能為空,如果為空的話,上面 Controller 中的 create 方法會將message 中的"密碼不能為空"返回。

當(dāng)然也可以添加其他驗(yàn)證信息的要求:

限制說明
@Null限制只能為null
@NotNull限制必須不為null
@AssertFalse限制必須為false
@AssertTrue限制必須為true
@DecimalMax(value)限制必須為一個(gè)不大于指定值的數(shù)字
@DecimalMin(value)限制必須為一個(gè)不小于指定值的數(shù)字
@Digits(integer,fraction)限制必須為一個(gè)小數(shù),且整數(shù)部分的位數(shù)不能超過integer,小數(shù)部分的位數(shù)不能超過fraction
@Future限制必須是一個(gè)將來的日期
@Max(value)限制必須為一個(gè)不大于指定值的數(shù)字
@Min(value)限制必須為一個(gè)不小于指定值的數(shù)字
@Past限制必須是一個(gè)過去的日期
@Pattern(value)限制必須符合指定的正則表達(dá)式
@Size(max,min)限制字符長度必須在min到max之間
@Past驗(yàn)證注解的元素值(日期類型)比當(dāng)前時(shí)間早
@NotEmpty驗(yàn)證注解的元素值不為null且不為空(字符串長度不為0、集合大小不為0)
@NotBlank驗(yàn)證注解的元素值不為空(不為null、去除首位空格后長度為0),不同于@NotEmpty,@NotBlank只應(yīng)用于字符串且在比較時(shí)會去除字符串的空格
@Email驗(yàn)證注解的元素值是Email,也可以通過正則表達(dá)式和flag指定自定義的email格式

除此之外還可以自定義驗(yàn)證信息的要求,例如下面的 @MyConstraint:

public class User {
 
    private String id;
 
    @MyConstraint(message = "這是一個(gè)測試")
    private String username;
 
}

注解的具體內(nèi)容:

@Constraint(validatedBy = {MyConstraintValidator.class})
@Target({ELementtype.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyConstraint {
    String message();
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {}; 
}

下面是校驗(yàn)器:

public class MyConstraintValidator implements ConstraintValidator<MyConstraint, Object> {
    @Autowired
    private UserService userService;
    
    @Override
    public void initialie(@MyConstraint constarintAnnotation) {
        System.out.println("my validator init");
    }
    
    @Override
    public boolean isValid(Object value, ConstraintValidatorContext context) {
        userService.getUserByUsername("seina");
        System.out.println("valid");
        return false;
    }
}

總結(jié)

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

相關(guān)文章

  • MySQL存儲全角字符和半角字符的區(qū)別

    MySQL存儲全角字符和半角字符的區(qū)別

    這篇文章主要介紹了MySQL存儲全角字符和半角字符的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Mysql命令大全(詳細(xì)篇)

    Mysql命令大全(詳細(xì)篇)

    這篇文章主要介紹了Mysql命令大全,這里整理的算是比較詳細(xì)的,需要的朋友可以參考下
    2015-11-11
  • mysql備份與恢復(fù)詳解

    mysql備份與恢復(fù)詳解

    本篇文章是對mysql的備份與恢復(fù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL的下載、安裝詳細(xì)教程

    MySQL的下載、安裝詳細(xì)教程

    本文的主要目的是在?Windwos?上安裝?MySQL,以下內(nèi)容是源于?B站?-?MySQL數(shù)據(jù)庫入門到精通整理而來,需要的朋友可以參考下
    2023-06-06
  • mysql?8.0.28安裝配置方法圖文教程(壓縮包方式)

    mysql?8.0.28安裝配置方法圖文教程(壓縮包方式)

    這篇文章主要為大家詳細(xì)介紹了mysql?8.0.28安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • mysql數(shù)據(jù)庫基礎(chǔ)知識點(diǎn)與操作小結(jié)

    mysql數(shù)據(jù)庫基礎(chǔ)知識點(diǎn)與操作小結(jié)

    這篇文章主要介紹了mysql數(shù)據(jù)庫基礎(chǔ)知識點(diǎn)與操作,總結(jié)分析了mysql數(shù)據(jù)庫修改數(shù)據(jù)表、增刪改查及數(shù)據(jù)庫函數(shù)基本功能,需要的朋友可以參考下
    2020-01-01
  • MySQL的Grant命令詳解

    MySQL的Grant命令詳解

    mysql中可以通過Grant命令為數(shù)據(jù)庫賦予用戶權(quán)限,這里簡單介紹下Grant的使用方法,需要的朋友可以參考下
    2013-10-10
  • 同時(shí)運(yùn)行多個(gè)MySQL服務(wù)器的方法

    同時(shí)運(yùn)行多個(gè)MySQL服務(wù)器的方法

    在同一臺機(jī)器上運(yùn)行多個(gè)有些情況下你可能想要在同一臺機(jī)器上運(yùn)行多個(gè)服務(wù)器。例如,你可能想要測試一個(gè)新的MySQL版本而讓你現(xiàn)有生產(chǎn)系統(tǒng)的設(shè)置不受到干擾, 或你可能是想要為不同的客戶提供獨(dú)立的MySQL安裝一個(gè)因特網(wǎng)服務(wù)供應(yīng)商。
    2008-05-05
  • MySQL高級進(jìn)階sql語句總結(jié)大全

    MySQL高級進(jìn)階sql語句總結(jié)大全

    這篇文章主要給大家介紹了關(guān)于MySQL高級進(jìn)階sql語句的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • mysql 找回誤刪表的數(shù)據(jù)方法(必看)

    mysql 找回誤刪表的數(shù)據(jù)方法(必看)

    下面小編就為大家?guī)硪黄猰ysql 找回誤刪表的數(shù)據(jù)方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論

浦城县| 来凤县| 宜州市| 保德县| 克山县| 长兴县| 禄丰县| 太白县| 循化| 溧阳市| 三门峡市| 屏南县| 肥城市| 合水县| 博客| 大兴区| 安新县| 车险| 彩票| 微博| 定边县| 高邑县| 棋牌| 雅安市| 江陵县| 阿鲁科尔沁旗| 谷城县| 安徽省| 乐都县| 通化县| 阿克陶县| 天全县| 泰和县| 汉沽区| 临猗县| 青海省| 琼中| 门头沟区| 凤冈县| 英吉沙县| 安龙县|