Spring-boot-validation 在属性里使用
时间: 2024-05-12 17:14:14 浏览: 90
Spring Boot Validation 是一个非常有用的工具,可以帮助我们轻松地验证数据模型中的属性。在属性中使用 Spring Boot Validation,我们需要在属性上使用注解来指定验证规则。
例如,我们可以在一个 User 类中的属性上使用验证注解,如下所示:
```java
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
@Size(min = 6, max = 20, message = "密码长度必须在6到20个字符之间")
private String password;
@Email(message = "邮箱格式不正确")
private String email;
// getter 和 setter 方法
}
```
在上面的代码中,我们使用了 `@NotBlank`、`@Size` 和 `@Email` 这三个注解来验证 User 类中的属性。`@NotBlank` 注解表示该属性不能为空,`@Size` 注解表示该属性的长度必须在 6 到 20 个字符之间,`@Email` 注解表示该属性必须满足邮箱格式。
当我们在实例化 User 对象并设置属性值时,Spring Boot Validation 会自动对属性进行验证。如果验证失败,会抛出 ConstraintViolationException 异常。我们可以通过捕获该异常来处理验证失败的情况。
```java
public class UserController {
@PostMapping("/users")
public ResponseEntity createUser(@Validated @RequestBody User user) {
// 处理创建用户的逻辑
return ResponseEntity.ok().build();
}
@ExceptionHandler(ConstraintViolationException.class)
public ResponseEntity handleConstraintViolationException(ConstraintViolationException e) {
// 处理验证失败的情况
return ResponseEntity.badRequest().body(e.getMessage());
}
}
```
在上面的代码中,我们在 UserController 类中的 createUser 方法上使用了 `@Validated` 注解来启用属性验证。如果属性验证失败,会抛出 ConstraintViolationException 异常,我们在该类中实现了 handleConstraintViolationException 方法来处理该异常。
阅读全文