데이터 액세스 개체 클래스의 필드를 확인하고 있습니다. 하나의 시도로, 나는 (@NotNull, @NotBlank, @Min, @Max 등과 같은) 속성에 Bean Validation 어노테이션을 추가하기 시작했다. 나는 또한 더 복잡한 주석과 Jackson (JsonProperty (..)) 라이브러리와 문서 (@Api (...))를 가지고있다. 내 의견으로는 클래스는 많은 주석 (각 속성은 최소한 세 개의 주석이 있음)이 매우 "더러 웠"습니다. 하나 개의 필드의 예 : 또 다른 시도에서Bean 유효성 검사와 사용자 정의 유효성 검사 프레임 워크는 언제 사용합니까?
@JsonProperty("ownName")
@Api(description="it is my own name" required=true)
@Valid
@NotNull
private SomeObject object;
, 나는 봄 Validator
인터페이스 내 자신의 유효성 검사를 수행했습니다. 스프링 인터페이스와 같은 커스텀 유효성 검사기가 사용된다면 더 깨끗해 보일 수 있고 다른 상황에 대해 하나 이상의 유효성 검사기를 자유롭게 생성 할 수 있습니다. 또한 클래스는 주석이 너무 많이 오버로드되지 않으며 유효성 검사가 클래스와 독립적입니다. Validator
의 예 :
public class UserValidator implements Validator {
@Override
public boolean supports(Class<?> arg0) {
return User.class.isAssignableFrom(arg0);
}
@Override
public void validate(Object obj, Errors error) {
User user = (User) obj;
if(user.getPassword().length() < 10)
{
error.reject("Password must be lesser than 10");
}
//more validations....
}
}
- 하나 또는 다른 사용해야합니까?
- 각 장단점은 무엇입니까?