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

SpringBoot?Validation快速實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例代碼

 更新時(shí)間:2022年06月07日 08:35:22   作者:碼拉松  
在實(shí)際開發(fā)中,肯定會(huì)經(jīng)常遇到對(duì)參數(shù)字段進(jìn)行校驗(yàn)的場(chǎng)景,通常我們只能寫大量的if else來完成校驗(yàn)工作,而如果使用SpringBoot Validation則可以輕松的通過注解來完成,接下來小編給大家介紹下利用SpringBoot?Validation快速實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例代碼,需要的朋友參考下吧

前言

在實(shí)際開發(fā)中,肯定會(huì)經(jīng)常遇到對(duì)參數(shù)字段進(jìn)行校驗(yàn)的場(chǎng)景,雖然大多數(shù)情況下前端都會(huì)進(jìn)行校驗(yàn),但我們知道前端并不可信,所以后臺(tái)也需要進(jìn)行校驗(yàn),通常我們只能寫大量的if else來完成校驗(yàn)工作,而如果使用SpringBoot Validation則可以輕松的通過注解來完成。

環(huán)境配置

引入Jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

使用示例

@Data
@ToString
public class DemoEntity {
	
	// 不能為空,比較時(shí)會(huì)除去空格
    @NotBlank(message = "名稱不能為空")
    private String name;
	
	// amount必須是一個(gè)大于等于5,小于等于10的數(shù)字
    @DecimalMax(value = "10")
    @DecimalMin(value = "5")
    private BigDecimal amount;

	// 必須符合email格式
    @Email
    private String email;
	
	// size長(zhǎng)度必須在5到10之間
    @Size(max = 10, min = 5)
    private String size;
	
	// age大小必須在18到35之間
    @Min(value = 18)
    @Max(value = 35)
    private int age;
	
	// user不能為null
    @NotNull
    private User user;
	
	// 限制必須為小數(shù),且整數(shù)位integer最多2位,小數(shù)位fraction最多為4位
    @Digits(integer = 2, fraction = 4)
    private BigDecimal digits;
	
	// 限制必須為未來的日期
    @Future
    private Date future;

	// 限制必須為過期的日期
    @Past
    private Date past;
	
	// 限制必須是一個(gè)未來或現(xiàn)在的時(shí)間
    @FutureOrPresent
    private Date futureOrPast;
	
	// 支持正則表達(dá)式
	@Pattern(regexp = "^\\d+$")
	private String digit;
}

注意:請(qǐng)求時(shí),參數(shù)必須加上@Validated才能生效

@RestController
@Slf4j
@RequestMapping("/valid")
public class TestValidController {

    @RequestMapping("/demo1")
    public String demo12(@Validated @RequestBody DemoEntity demoEntity) {
        try {
            return "SUCCESS";
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return "FAIL";
        }
    }
}

分組

有些時(shí)候,同一個(gè)參數(shù)在不能場(chǎng)景下校驗(yàn)的規(guī)則可能不一樣,這時(shí)候我們就可以通過分組的方式來實(shí)現(xiàn)

實(shí)體類name屬性設(shè)置了兩種校驗(yàn),分別針對(duì)groups為A和B的生效

@NotBlank(message = "名稱不能為空", groups = A.class)
@Size(max = 10, min = 5, groups = B.class)
private String name;

只要在相對(duì)應(yīng)的接口上選擇A或者B即可

@RestController
@Slf4j
@RequestMapping("/valid")
public class TestValidController {

    @RequestMapping("/demo1")
    public String demo1(@Validated({A.class}) @RequestBody DemoEntity demoEntity) {
        try {
            return "SUCCESS";
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return "FAIL";
        }
    }

    @RequestMapping("/demo2")
    public String demo2(@Validated({B.class}) @RequestBody DemoEntity demoEntity) {
        try {
            return "SUCCESS";
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return "FAIL";
        }
    }
}

到此這篇關(guān)于利用SpringBoot Validation快速實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的文章就介紹到這了,更多相關(guān)SpringBoot Validation數(shù)據(jù)校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)圖形化界面的日歷

    Java實(shí)現(xiàn)圖形化界面的日歷

    這篇文章主要介紹了Java實(shí)現(xiàn)圖形化界面的日歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • JDBC編程的詳細(xì)步驟

    JDBC編程的詳細(xì)步驟

    這篇文章主要介紹了JDBC編程的詳細(xì)步驟,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)JDBC編程的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • java 如何將多種字符串格式 解析為Date格式

    java 如何將多種字符串格式 解析為Date格式

    這篇文章主要介紹了java 如何將多種字符串格式 解析為Date格式的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Struts中使用validate()輸入校驗(yàn)方法詳解

    Struts中使用validate()輸入校驗(yàn)方法詳解

    這篇文章主要介紹了Struts中使用validate()輸入校驗(yàn)方法,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-09-09
  • SpringBoot使用mybatis步驟總結(jié)

    SpringBoot使用mybatis步驟總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著SpringBoot使用mybatis步驟展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 詳解Java MD5二次加密的應(yīng)用

    詳解Java MD5二次加密的應(yīng)用

    MD5的全稱是message-digest algorithm 5 信息-摘要算法。這篇文章主要為大家詳細(xì)介紹了Java中MD5二次加密的應(yīng)用,感興趣的小伙伴可以了解一下
    2023-02-02
  • netty服務(wù)端輔助類ServerBootstrap創(chuàng)建邏輯分析

    netty服務(wù)端輔助類ServerBootstrap創(chuàng)建邏輯分析

    這篇文章主要介紹了netty服務(wù)端輔助類ServerBootstrap創(chuàng)建邏輯分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • springboot查詢?nèi)坎块T流程分析

    springboot查詢?nèi)坎块T流程分析

    本文分析了在SpringBoot框架中前端如何請(qǐng)求DeptController的list()方法,并通過DeptService到DeptMapper接口查詢數(shù)據(jù)庫(kù)中的全部部門信息的流程,整個(gè)過程涉及前端到后端數(shù)據(jù)的獲取和返回,是SpringBoot應(yīng)用中常見的數(shù)據(jù)處理模式
    2024-10-10
  • SpringBoot?Validation快速實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例代碼

    SpringBoot?Validation快速實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例代碼

    在實(shí)際開發(fā)中,肯定會(huì)經(jīng)常遇到對(duì)參數(shù)字段進(jìn)行校驗(yàn)的場(chǎng)景,通常我們只能寫大量的if else來完成校驗(yàn)工作,而如果使用SpringBoot Validation則可以輕松的通過注解來完成,接下來小編給大家介紹下利用SpringBoot?Validation快速實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例代碼,需要的朋友參考下吧
    2022-06-06
  • Java基于裝飾者模式實(shí)現(xiàn)的圖片工具類實(shí)例【附demo源碼下載】

    Java基于裝飾者模式實(shí)現(xiàn)的圖片工具類實(shí)例【附demo源碼下載】

    這篇文章主要介紹了Java基于裝飾者模式實(shí)現(xiàn)的圖片工具類,結(jié)合完整實(shí)例形式分析了裝飾者模式實(shí)現(xiàn)圖片的判斷、水印、縮放、復(fù)制等功能,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-09-09

最新評(píng)論

海丰县| 武鸣县| 卢氏县| 柳林县| 抚顺县| 北川| 武汉市| 北碚区| 东台市| 若羌县| 双城市| 万载县| 涪陵区| 怀来县| 潍坊市| 上栗县| 南安市| 昌邑市| 邵武市| 漳州市| 邹城市| 格尔木市| 阿城市| 勃利县| 龙江县| 娱乐| 南郑县| 武清区| 城市| 隆德县| 屏东市| 大港区| 宜宾县| 五大连池市| 淅川县| 唐山市| 武汉市| 韩城市| 济南市| 会理县| 寿阳县|