➊ 사용자 정의 애너테이션 선언
➊-1 사용자 정의 애너테이션 생성: 제약 사항 및 구성 속성에 설정하는 @interface를 사용하여 사용자 정의 애너테이션을 생성합니다.
➊-2 ConstraintValidator 구현체 생성: 생성한 사용자 정의 애너테이션의 유효성 검사 클래스는 javax.validation.ConstraintValidator 인터페이스의 구현체로 생성합니다.
➋ @Valid를 이용한 유효성 검사
➌ <form:errors> 태그로 오류 메시지 출력
사용자 정의 애너테이션을 이용한 유효성 검사는 사용자 정의 애너테이션을 만들어 사용하는 것을 제외하고는 앞서 배운 JSR-380 애너테이션을 이용한 처리 과정과 같습니다. 다음과 같이 도메인 클래스의 멤버 변수에 선언할 사용자 정의 애너테이션인 @MemberId를 만드는 방법을 살펴봅니다.
Product.java
public class Member {
@MemberId // 사용자 정의 애너테이션 선언
private String memberId;
// Setter()와 Getter() 메서드
}