一、步骤概览
文章插图
二、步骤说明1.引入依赖包在 pom.xml 文件中引入 validation 组件,它提供了在 Spring Boot 应用程序中进行参数校验的支持 。
<!-- WEB 程序依赖包 --><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>
validation组件主要功能包括:- 支持注解驱动的校验: 使用 JSR-380 提供的注解进行参数校验,例如 @NotNull、@NotBlank、@Size 等 。
- 对 Controller 方法参数的校验支持: 在 Controller 的方法参数上使用 @Valid 注解,触发参数校验 。
- 定制化校验错误信息: 支持自定义校验错误信息,使得校验失败时能够返回友好的错误提示 。
- 校验结果处理: 在校验失败时,将校验结果存储在 BindingResult 对象中 , 方便开发者获取校验错误信息进行处理 。
- 集成 Hibernate Validator: 基于 Hibernate Validator 实现参数校验,支持丰富的校验功能,如自定义校验器、分组校验等 。
文章插图
可使用的注解列表如下所示:
- @NotNull:被注释的元素必须不为 null 。适用于所有类型 。
- @NotBlank:被注释的字符串必须非空且长度大于 0(去掉两端空白字符后) 。
- @NotEmpty:被注释的字符串、集合、Map 或数组必须非空 。
- @Size:被注释的元素的大小必须在指定范围内 。
- @Min :被注释的元素的值必须大于或等于最小值 。
- @Max:被注释的元素的值必须小于或等于最大值 。
- @DecimalMin:被注释的元素的值必须大于或等于最小值 。
- @DecimalMax:被注释的元素的值必须小于或等于最大值 。
- @EmAIl:被注释的元素必须是一个合法的电子邮件地址 。
- @Pattern:被注释的字符串必须符合指定的正则表达式 。
- @AssertTrue:被注释的元素必须为 true 。
- @AssertFalse:被注释的元素必须为 false 。
- @Future:被注释的日期必须是未来的 。
- @FutureOrPresent:被注释的日期必须当前或未来的 。
- @Past :被注释的日期必须是过去的 。
- @PastOrPresent:被注释的日期必须是当前或过去的 。
文章插图
4.控制层启用校验在实体类上添加校验注解,这只是定义了校验规则,并没有真正启用,在 Controller 方法上还需要使用 @Valid 或 @Validated注解启用校验 。使用示例如下图所示:
文章插图
其中@Valid 注解和@Validated注解还是有点区别的,区别如下所示,我们在使用时,可根据其特性按需使用 。
@Valid
@Validated
适用范围
方法参数、方法返回值、字段和方法级别
方法参数和方法返回值
验证顺序
会递归地校验参数对象的属性
不会递归地校验参数对象的属性
分组校验
不支持分组校验
支持分组校验
验证器选择
默认使用 JAVA 标准的 Bean Validation(JSR 380)规范的验证器,例如 Hibernate Validator
使用 Spring 的验证器,例如 Spring Validator
三、测试结果测试如图所示:
文章插图
返回的信息按照统一的格式返回,并提示我们哪个参数校验失败 。
推荐阅读
- 如何在Python中使用ChatGPT API处理实时数据
- 如何选用锂电池均衡仪
- 我的手机我做主,如何为Android手机应用换图标?
- 航空公司该如何选择,联合航空公司如何选座位
- 微信投票能如何操作,微信投票如何快速拿1000票
- 如何修复感情
- 微信验证消息能如何看全,为什么微信互删后验证消息也消失了
- WPS如何给文字添加边框线
- 能如何看电脑内存,如何查看电脑c盘和d盘内存
- cdr能如何保存,cdr卡住了如何保存文件