더북(TheBook)

사용자 정의 애너테이션 @BookIdMethod, Field, Annotation_type을 정의하며, 이는 런타임할 때 적용됩니다. 그리고 도메인 클래스에 @BookId가 부여된 멤버 변수는 BookIdValidator 클래스로 유효성 검사를 수행합니다.

@BookId는 필수 속성(message, groups, payload)을 포함합니다. @BookId에 대한 유효성 검사를 할 때 오류가 발생하면 메시지 리소스 파일 messages.properties에 설정된 BookId.NewBook.bookId의 메시지를 출력합니다.

4. com.springmvc.validator 패키지에 BookIdValidator 클래스를 생성하고 다음 내용을 작성합니다.

코드13-9 BookIdValidator.java

package com.springmvc.validator;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import org.springframework.beans.factory.annotation.Autowired;
import com.springmvc.exception.BookIdException;
import com.springmvc.service.BookService;
import com.springmvc.domain.Book;

public class BookIdValidator implements ConstraintValidator<BookId, String> {

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