Java bean 유효성 검증에 사용할 사용자 정의 어노테이션을 지정했습니다. 나는 내 모든 필드에 대해 동일한 주석 클래스를 사용하여 다음과 같이 필드의 이름으로 문자열 매개 변수를 전달 :Java에서 주석을 언제 어떻게 초기화합니까? 이것을 제어 할 수 있습니까?
@CustomConstraint(value="name")
private String name;
@CustomConstraint(value="address1")
private String addressLine1;
내 제약 검사기가에 문자열 키 (필드의 이름) 매핑는 HashMap을 유지 내 유효성 검사 클래스의 인터페이스. 나는 정적과 같이 필드의 유효성을 검사하는 데 사용되는 인터페이스의 구상 서브 클래스로 특정 필드 이름을 페어링하여지도를 초기화 :
private static final Map<String, CustomValidatorClass> fieldMapper;
static {
Map<String, CustomValidatorClass> map = new HashMap<String, CustomValidatorClass>();
map.put("name", new NameValidator());
map.put("address1", new Address1Validator());
fieldMapper = Collections.unmodifiableMap(map);
}
내 관심이 초기화 과정이 매우 비쌀 수 있다는 것입니다 (내가 가진 수십 필드의), 그리고 그것이 유효성을 검사하는 모든 단일 필드에 대해 초기화 될 수 있습니다. 어노테이션을 한 번 초기화하고 재사용하도록 지정하는 방법이 있거나, 이것이 기본 동작이라고 기대하고 있습니다.
편집 : 콩 검증과 함께 JSF 2.0을 사용하고 있으므로 이러한 주석을 직접 읽거나 부르지는 않습니다. 이것은 프레임 워크에 의해 처리되는데, 그 이유는 정확히 어떻게 작동 하는지를 결정할 수 없었기 때문입니다.
[이 설명서] (http : //www.jcabi.com/jcabi-aspects/jsr-303.html) 당신을 도울 수 – yegor256