@Validated数据校验
- 前言
为了减少代码进行对数据进行校验,利用@Validated来进行注解形式的数据校验 - 创建实体类
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class User {
@NotNull(message = "id不能为空",groups = Update.class)
Long id;
@NotBlank(message = "文本不能为空",groups = {Add.class,groups = Update.class})
String name;
@NotBlank(message = "密码不能为空",groups = {Add.class,groups = Update.class})
String password;
@Min(value = 1,message = "输入年龄不能小于1",{Add.class,groups = Update.class})
@Max(value = 20,message = "输入年龄不能超过20",{Add.class,groups = Update.class})
Integer age;
@Email(message = "邮件格式错误",{Add.class,groups = Update.class})
String email;
@NotEmpty(message = "标签不能为空",groups = {Add.class,groups = Update.class})
List<Long> tags;
}
public interface Add {
}
public interface Update {
}
@RestController
@RequestMapping("/")
public class UserController {
@PostMapping("/add")
void add (@RequestBody @Validated(Add.class) User user) {
System.out.println("调用服务");
}
@PostMapping("/update")
void update (@RequestBody @Validated(Update.class) User user) {
System.out.println("调用服务");
}
}
- 利用@Validated可实现数据校验,当然也可以结合@Valid 进行嵌套格式。具体其他使用等用到再记录。