首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

SpringBoot Validation快速实现数据校验的示例代码

2022-06-07 12:38:45 来源 : 软件开发网

目录

前言

环境配置

使用示例

分组

前言

在实际开发中,肯定会经常遇到对参数字段进行校验的场景,虽然大多数情况下前端都会进行校验,但我们知道前端并不可信,所以后台也需要进行校验,通常我们只能写大量的if else来完成校验工作,而如果使用SpringBoot Validation则可以轻松的通过注解来完成。

环境配置

引入Jar包

org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-validation使用示例@Data@ToStringpublic class DemoEntity {// 不能为空,比较时会除去空格 @NotBlank(message = "名称不能为空") private String name;// amount必须是一个大于等于5,小于等于10的数字 @DecimalMax(value = "10") @DecimalMin(value = "5") private BigDecimal amount;// 必须符合email格式 @Email private String email;// size长度必须在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;// 限制必须为小数,且整数位integer最多2位,小数位fraction最多为4位 @Digits(integer = 2, fraction = 4) private BigDecimal digits;// 限制必须为未来的日期 @Future private Date future;// 限制必须为过期的日期 @Past private Date past;// 限制必须是一个未来或现在的时间 @FutureOrPresent private Date futureOrPast;// 支持正则表达式@Pattern(regexp = "^\\d+$")private String digit;}

注意:请求时,参数必须加上@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"; } }}分组

有些时候,同一个参数在不能场景下校验的规则可能不一样,这时候我们就可以通过分组的方式来实现

实体类name属性设置了两种校验,分别针对groups为A和B的生效

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

只要在相对应的接口上选择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"; } }}

到此这篇关于利用SpringBootValidation快速实现数据校验的文章就介绍到这了,更多相关SpringBootValidation数据校验内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!

标签: 支持软件 正则表达式 希望大家

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28