Spring Boot 参数校验
作者:互联网
2026-04-01
1、常用注解
- @NotNull:确保字段的值不能为
null。
@NotNull(message = "用户名不能为空")
private String username;
- @NotEmpty:确保字符串不能为
null或空字符串""。
@NotEmpty(message = "密码不能为空")
private String password;
- @NotBlank:确保字符串不能为
null或空格字符(包括空格、tab 等)。
@NotBlank(message = "用户名不能为空")
private String username;
- @Size:用于约束字符串、集合、数组的大小。
@Size(min = 5, max = 20, message = "用户名长度必须在 5 到 20 个字符之间")
private String username;
- @Min 和 @Max:用于对数字进行大小校验。
@Min(value = 18, message = "年龄必须大于等于 18 岁")
private int age;
@Max(value = 100, message = "年龄不能超过 100 岁")
private int age;
- @Email:用于校验邮箱格式。
@Email(message = "邮箱格式不正确")
private String email;
- @Pattern:用于校验字符串是否匹配正则表达式。
@Pattern(regexp = "^[A-Za-z0-9]+$", message = "用户名只能包含字母和数字")
private String username;
- @Range:用于数字范围校验(
@Min和@Max的组合)。
@Range(min = 18, max = 100, message = "年龄必须在 18 到 100 之间")
private int age;
- @AssertTrue 和 @AssertFalse:用于验证布尔值。
@AssertTrue(message = "必须为成年人")
private boolean isAdult;
- @Valid:用于嵌套对象的校验。通常在对象的属性为另一个对象时,使用
@Valid来触发子对象的校验。
public class User {
@Valid
private Address address;
}
2、Spring Boot中实现参数校验
2.1 引入依赖pom.xml
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-validationartifactId>
dependency>
2.2 在实体类上添加校验注解
2.3 在Controller方法参数上添加@Validated
2.4 在全局异常处理中添加参数校验异常处理
@ExceptionHandler(MethodArgumentNotValidException.class)
public Result handleValidationException(MethodArgumentNotValidException e) {
String message = e.getBindingResult().getFieldErrors().stream()
.map(error -> error.getField() + ": " + error.getDefaultMessage())
.collect(Collectors.joining("; "));
return Result.error(400, message);
}
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
Spring AI 核心原理解析:基于 1.1.4 版本拆解底层架构
04/16
华为 IODT 设备接入
04/16
自定义跨字段校验必填注解
04/16
别再System.out了!这份SpringBoot日志优雅指南,让你告别日志混乱
04/16
SpringBoot - Actuator与监控
04/16
数据库安全第一关:用户密码存储与认证机制的深度拆解
04/16
OpenCode 20 个斜杠命令,90% 的人只用过 3 个
04/16
【从0到1构建一个ClaudeAgent】规划与协调-任务系统
04/16
BlockingQueue详解
04/16
附源码:三原管理系统新增俩种常用布局
04/15
AI精选
