더북(TheBook)

13.3.2 ConstraintValidator 인터페이스의 구현체 생성

사용자 정의 애너테이션의 유효성 검사 클래스는 javax.validation.ConstraintValidator 인터페이스의 구현체를 생성합니다. 해당 구현체를 생성하려면 initialize()isValid() 메서드를 구현해야 합니다.

▼ 표 13-6 ConstraintValidator 인터페이스의 메서드

유형

설명

void initialize(A constraintAnnotation)

사용자 정의 애너테이션과 관련 정보를 읽어 초기화합니다. 이때 A는 사용자 정의 제약 사항을 설정합니다.

boolean isValid(T value, ConstraintValidatorContext context)

유효성 검사 로직을 수행합니다. value는 유효성 검사를 위한 도메인 클래스의 변수 값이고, context는 제약 사항을 평가하는 컨텍스트입니다.

다음 MemberIdValidator 클래스는 앞서 살펴본 사용자 정의 애너테이션 @MemberId를 생성할 때 @ConstraintvalidatedBy 요소에 설정한 유효성 검사 클래스 예입니다. 이 클래스는 ConstraintValidator 인터페이스의 구현체입니다.

ConstraintValidator 인터페이스의 구현체 생성 예

package com.springmvc.chap13;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class MemberIdValidator implements ConstraintValidator<MemberId, String> { 

    private Member member;

    public void initialize(MemberId constraintAnnotation) { 
    }

    public boolean isValid(String value, ConstraintValidatorContext context) { 
        if (value.equals("admin")) {
            return false;
        }
            return true;
    }

}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.