@Valid
注解是 Java 标准库 javax.validation
中的一个注解,主要用于 Bean Validation(JSR 380 规范的一部分),它用于在运行时验证 Java Bean 的属性值是否满足特定的约束条件。
@Valid
注解本身没有参数,但它可以与多种约束注解(如 @NotNull
, @Size
, @Pattern
等)结合使用,以定义具体的验证规则。
假设有一个用户注册的表单,其中包含用户名和密码字段,我们可以使用 @Valid
注解来验证这些字段。
public class UserRegistrationForm {
@NotNull(message = "用户名不能为空")
@Size(min = 4, max = 20, message = "用户名长度必须在4到20个字符之间")
private String username;
@NotNull(message = "密码不能为空")
@Size(min = 6, message = "密码长度必须至少为6个字符")
private String password;
// getters and setters
}
在控制器中使用 @Valid
注解触发验证:
@RestController
public class UserController {
@PostMapping("/register")
public ResponseEntity<?> registerUser(@Valid @RequestBody UserRegistrationForm form) {
// 处理注册逻辑
return ResponseEntity.ok("注册成功");
}
}
MethodArgumentNotValidException
异常。可以通过全局异常处理器来捕获这个异常,并返回友好的错误信息。MethodArgumentNotValidException
异常。可以通过全局异常处理器来捕获这个异常,并返回友好的错误信息。ConstraintValidator
接口来自定义验证注解。ConstraintValidator
接口来自定义验证注解。领取专属 10元无门槛券
手把手带您无忧上云