当前位置: 首页 > news >正文

凡科互动客服英文seo外链发布工具

凡科互动客服,英文seo外链发布工具,字体设计在线生成免费,自己做短视频的网站spring-boot-starter-validation 是 Spring Boot 中用于支持数据验证的模块。它建立在 Java Validation API(JSR-380)之上,提供了一种方便的方式来验证应用程序中的数据。以下是使用 spring-boot-starter-validation 的基本方法: …

spring-boot-starter-validation 是 Spring Boot 中用于支持数据验证的模块。它建立在 Java Validation API(JSR-380)之上,提供了一种方便的方式来验证应用程序中的数据。以下是使用 spring-boot-starter-validation 的基本方法:

快速入门

1.添加依赖:

在你的 Spring Boot 项目的 pom.xml 文件中,添加以下依赖:

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

如果你使用 Gradle,可以在 build.gradle 文件中添加:

implementation 'org.springframework.boot:spring-boot-starter-validation'
2.创建验证规则:

在需要进行数据验证的类中,使用 Java Validation API 中的注解标记字段,以定义验证规则。例如,使用 @NotBlank 来确保字段不为空:

public class MyRequest {@NotBlankprivate String name;/***    1.@NotNull:不能为null,但可以为empty(""," ","   ")      *    2.@NotEmpty:不能为null,而且长度必须大于0 (" ","  ")*    3.@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0("test")    即:必须有实际字符* 复制代码*/@NotBlank(message="用户名不能为空")private String userName;@NotBlank(message="年龄不能为空")@Pattern(regexp="^[0-9]{1,2}$",message="年龄不正确")private String age;@AssertFalse(message = "必须为false")private Boolean isFalse;/*** 如果是空,则不校验,如果不为空,则校验*/@Pattern(regexp="^\\d{4}(-)(1[0-2]|0?\\d)\\1([0-2]\\d|\\d|30|31)$",message="出生日期格式不正确")private String birthday;@Pattern(regexp = "^[M|F|U|m|f|u]{1}$")private String gender;@Pattern(regexp = "^(MS)?(MR)?(PRO)?(MRS)?(DOC)?$")private String civility;@Size(min = 1, message = "field names can't be empty")private List<String> names = new ArrayList();// Other fields and methods...
}

这只是一个简单的例子,Java Validation API 提供了许多其他注解,如 @NotNull@Min@Max@Email 等,以满足各种验证需求。

3.在控制器中使用验证:

在需要验证输入数据的地方,通常是在 Spring MVC 的控制器中,使用 @Valid 注解来启用验证:

@RestController
public class MyController {@PostMapping("/submit")public ResponseEntity<String> submit(@Valid @RequestBody MyRequest request) {// Process the validated requestreturn ResponseEntity.ok("Request is valid");}
}

在上面的例子中,@Valid 注解用于告诉 Spring Boot 对 MyRequest 对象进行验证。如果验证失败,将会抛出 MethodArgumentNotValidException 异常。

4.处理验证错误:

若要处理验证错误,可以使用 BindingResult 对象。修改控制器方法以接受 BindingResult 参数,并检查是否有错误:

@RestController
public class MyController {@PostMapping("/submit")public ResponseEntity<String> submit(@Valid @RequestBody MyRequest request, BindingResult bindingResult) {if (bindingResult.hasErrors()) {// Handle validation errorsreturn ResponseEntity.badRequest().body("Validation errors");}// Process the validated requestreturn ResponseEntity.ok("Request is valid");}
}

这就是使用 spring-boot-starter-validation 的基本步骤。通过这种方式,你可以方便地在 Spring Boot 应用程序中进行数据验证,确保输入数据的合法性。

分组校验

在使用 Spring Boot Validation 进行分组校验时,你可以使用 Validation API 提供的 @GroupSequence 注解来定义校验顺序。下面是一个简单的示例,演示如何在 Spring Boot 中实现分组校验。

首先,假设你有一个包含分组信息的 Java Bean 类:

import javax.validation.GroupSequence;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;public class MyRequest {// 定义分组public interface FirstGroup {}public interface SecondGroup {}// 定义分组顺序@GroupSequence({FirstGroup.class, SecondGroup.class})public interface AllGroups {}// 分组校验示例@NotNull(message = "ID不能为空", groups = FirstGroup.class)private Long id;@NotBlank(message = "姓名不能为空", groups = SecondGroup.class)private String name;@NotNull(groups = {FirstGroup.class, SecondGroup.class}, message = "密码不能为空")private String password;// 省略其他字段和方法
}

在上述示例中,我们定义了两个分组 FirstGroupSecondGroup,然后使用 @GroupSequence 注解定义了它们的顺序。接着,在字段上使用 @NotNull@NotBlank 注解,并通过 groups 属性指定了校验时所属的分组。

接下来,在你的控制器或服务中,使用 @Validated 注解来指定使用哪个分组进行校验:

import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;@RestController
@Validated
public class MyController {@PostMapping("/submit")public String submit(@Validated(MyRequest.FirstGroup.class) @RequestBody MyRequest request) {// 处理请求return "Request is valid";}@PostMapping("/update")public String update(@Validated(MyRequest.SecondGroup.class) @RequestBody MyRequest request) {// 处理请求return "Request is valid";}
}

在上述示例中,@Validated 注解用于标记控制器,然后在方法参数上使用 @Validated 注解来指定使用哪个分组进行校验。在 /submit 接口中使用了 FirstGroup 进行校验,而在 /update 接口中使用了 SecondGroup 进行校验。

这样,你就可以实现基于分组的校验。请注意,分组的顺序是在 @GroupSequence 注解中定义的。

@Validated与@Valid 的区别
@Validated:提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制,这个网上也有资料,不详述。
@Valid:作为标准JSR-303规范,还没有吸收分组的功能。

常用注解说明

在 Spring Boot 中,用于数据验证的常用注解是来自 Java Validation API(JSR-380)的注解。以下是一些常用的注解:

  1. 通用注解
  • @NotNull: 验证注解的元素值不是 null。
  • @Null: 验证注解的元素值是 null。
  • @AssertTrue: 验证注解的元素值是 true
  • @AssertFalse: 验证注解的元素值是 false
  • @Min(value): 验证注解的元素值大于等于指定的值。
  • @Max(value): 验证注解的元素值小于等于指定的值。
  • @Size(max, min): 验证注解的元素值的大小在指定的范围内。
  • @Digits(integer, fraction): 验证注解的元素值的整数部分和小数部分的数字不超过指定的数值。
  1. 字符串验证
  • @NotBlank: 验证注解的元素值不为空(不为 null、去掉前后空格后长度大于0)。
  • @NotEmpty: 验证注解的元素值不为 null 且不为空。
  • @Email: 验证注解的元素值是一个有效的电子邮件地址。
  1. 数值验证
  • @Positive: 验证注解的元素值是正数。
  • @PositiveOrZero: 验证注解的元素值是非负数。
  • @Negative: 验证注解的元素值是负数。
  • @NegativeOrZero: 验证注解的元素值是非正数。
  1. 日期和时间验证
  • @Past: 验证注解的元素值是过去的日期或时间。
  • @PastOrPresent: 验证注解的元素值是过去或当前的日期或时间。
  • @Future: 验证注解的元素值是将来的日期或时间。
  • @FutureOrPresent: 验证注解的元素值是将来或当前的日期或时间。
  1. 自定义注解
  • 你还可以创建自定义的注解,通过实现 ConstraintValidator 接口来定义自己的验证逻辑,并使用 @Constraint 注解进行声明。

这些注解可以通过在 Java Bean 的字段上使用来进行数据验证。在 Spring Boot 中,通常与 @Valid@Validated 一起使用,以触发验证。在上述提到的示例中,已经展示了一些常用注解的使用方式。

示例:
以下是常用定义校验的注解及其使用示例:

  1. @NotNull:被注解的元素必须不为null。例如:
public class User {@NotNull(message = "姓名不能为空")private String name;// ...其他字段...
}
  1. @NotEmpty:被注释的对象必须不为空(数据:String,Collection,Map,arrays)。例如:
public class User {@NotEmpty(message = "角色列表不能为空")private List<Role> roles;// ...其他字段...
}
  1. @NotBlank:CharSequence子类型,验证注解的元素值不为空(包括不为null或去除首位空格后长度为0)。例如:
public class User {@NotBlank(message = "手机号码不能为空")private String phoneNumber;// ...其他字段...
}
  1. @Min:验证数字是否小于等于指定的最小值。例如:
public class User {@Min(value = 18, message = "年龄不能低于18岁")private int age;// ...其他字段...
}
  1. @Max:验证数字是否大于等于指定的最大值。例如:
public class User {@Max(value = 60, message = "年龄不能超过60岁")private int age;// ...其他字段...
}
  1. @Pattern:用于校验字符串是否符合指定的正则表达式。例如:
public class User {@Pattern(regexp = "^\\d{6}$", message = "身份证号码格式不正确")private String idCardNumber;// ...其他字段...
}
  1. @Size:用于限制字符序列(如String、Collection、Map等)的长度,支持min和max属性。例如:
public class User {@Size(min = 6, max = 18, message = "密码长度必须在6-18之间")private String password;// ...其他字段...
}
  1. @Email:用于校验邮箱地址。例如:
public class User {@Email(message = "请输入正确的邮箱地址")private String email;// ...其他字段...
}
  1. @Past:用于判断日期是否在过去。例如:
public class User {@Past(message = "生日不能晚于现在")private Date birthday;// ...其他字段...
}
  1. @Future:用于判断日期是否在未来。例如:
public class User {@Future(message = "截止日期必须在未来")private Date deadline;// ...其他字段...
}
  1. @DecimalMax:验证数字是否小于等于指定的最大值。例如:
public class User {@DecimalMax(value = "100.00", message = "金额不能超过100元")private double amount;// ...其他字段...
}
  1. @DecimalMin:验证数字是否大于等于指定的最小值。例如:
public class User {@DecimalMin(value = "1.00", message = "价格不能低于1元")private double price;// ...其他字段...
}

以上都是常见的数据校验注解,使用这些注解可以让我们的应用程序具有更强的健壮性,避免非法数据的输入。

http://www.khdw.cn/news/59184.html

相关文章:

  • 做五金生意什么网站做比较好企业营销策略分析论文
  • 网站开发和网页开发有什么区别seo是怎么优化推广的
  • 百度竞价做网站整合营销传播策划方案
  • 可以做网络兼职的网站天津网站快速排名提升
  • 美食网站首页软文营销的写作技巧有哪些
  • 什么企业做网站软文怎么写
  • 武汉做网站做得好的设计工作室西安自助建站
  • 武汉建设局网站长沙网站推广 下拉通推广
  • 哪个行业最喜欢做网站最新seo教程
  • 潍坊网站推广bt磁力库
  • 南开网站建设公司网络运营培训课程
  • 珠海做网站优化上海广告推广
  • wordpress菜单文章seo自然排名
  • 开发网站软件镇江市网站
  • wordpress主题怎么写北京seo顾问推推蛙
  • 百度贴吧营销长沙建站优化
  • 中关村手机网站建设百度注册网站怎么弄
  • 有哪些官网做的比较好的网站seo做得比较好的企业案例
  • 网上怎么做网站赚钱百度指数分析大数据
  • 天津推广的平台优化大师安卓版
  • 徐州免费模板建站网站统计工具有哪些
  • 西安未央区网站建设seo网站关键词优化方法
  • dreamweaver做购物网站百度怎么推广广告
  • 巩义做网站汉狮公司域名被墙查询
  • 朝阳网站开发联系电话百度一直不收录网站
  • php网站有点企业建站流程
  • 做网站上传图片一直错误百度云搜索入口
  • 兰州网站关键字优化高质量内容的重要性
  • 网站开发微信支付详细教程销售课程视频免费
  • 贵州建设厅考试网站安全员seo如何优化图片