더북(TheBook)

13.3.1 사용자 정의 애너테이션 생성

사용자 정의 애너테이션은 JSR-380처럼 도메인 클래스의 멤버 변수에 선언할 수 있는 제약 사항입니다. 또한 내장된 제약 사항이 아니므로 사용자가 직접 생성하여 사용할 수 있습니다. 사용자 정의 애너테이션을 생성하는 형식은 다음과 같습니다.

@Constraint(validatedBy=유효성 검사 클래스.class)
@Target(속성)
@Retention(속성)
@Documented
public @interface 사용자 정의 애너테이션 이름 {
    String message() default "출력할 오류 메시지";
    Class<?>[] groups() default {};
    Class<?>[] payload() default {};
}

유효성 검사를 위한 사용자 정의 애너테이션을 만들 때 반드시 있어야 하는 필수 속성은 message, groups, payload입니다.

▼ 표 13-3 사용자 정의 애너테이션의 필수 속성

속성

설명

message

유효성 검사에서 오류가 발생하면 반환되는 기본 메시지입니다.

groups

특정 유효성 검사를 그룹으로 설정합니다.

payload

사용자가 추가한 정보를 전달하는 값입니다.