我有一个 DTO,它在控制器层使用 BeanValidation (javax.validation) 和自定义验证器 (org.springframework.validation.Validator) 的组合进行验证。这样我可以检查提供的输入是否有效,然后将 DTO 转换为实体并将其转发到服务层。
@Data
public class UserDTO {
@NotBlank
@Size(max = 25)
private String name;
@NotNull
private Date birthday;
@NotNull
private Date startDate;
private Date endDate;
private Long count;
}
public class UserDTOValidator implements Validator {
private static final String START_DATE= "startDate";
private static final String END_DATE= "endDate";
private static final String COUNT= "count";
@Override
public boolean supports(Class<?> clazz) {
return UserDTO.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
UserDTO vm = …Run Code Online (Sandbox Code Playgroud)