@Validated
常用于对@RequestBody注解中的参数校验生效
用法:
@PostMapping
public UserModel getUser(@Validated @RequestBody UserModel model) {
return model;
}
UserModel:
@Data
public class UserModel {
@NotBlank
@Size(max = 6)
private String id;
@NotBlank
private String name;
}
@Validated注解使属性上的注解生效 @NotBlank @Size(max = 6)
同样的
@GetMapping("/{name}")
public String getName(@PathVariable("name") @Pattern(regexp = "^[A-Z]*$") String name){
return name;
}
在不使用body体,例如检查路径参数时,在参数列表上添加 @Validated是无效的需要将其添加到Controller层
@RestController
@Slf4j
@RequestMapping("/user")
@Validated
public class UserController {
@Valid主要嵌套检查
@Data
public class UserModel {
@NotBlank
@Size(max = 6)
private String id;
@NotBlank
private String name;
@Valid
private FamilyModel familyModel;
}
public class FamilyModel {
@NotBlank
private String motherName;
@NotBlank
private String fatherName;
}
UserModel 中的FamilyModel中有关字段会被检查