더북(TheBook)

JSR-380 애너테이션인 @Pattern, @Size, @Min, @Digits, @NotNull 등을 사용하려고 이를 제공하는 패키지인 javax.validation.constraints.*를 임포트합니다.

@Pattern은 멤버 변수 bookId의 제약 사항입니다. 첫 문자가 ISBN으로 시작하여 1부터 9까지 연속된 숫자가 오는 정규 표현식 ISBN[1-9]+ 패턴을 갖습니다. 유효성 검사를 할 때 bookId 값이 정규 표현식 ISBN[1-9]+ 패턴과 일치하지 않으면 메시지 리소스 파일에 선언된 Pattern.NewBook.bookId 메시지를 출력합니다. 메시지 리소스 파일에 해당 메시지가 선언되어 있지 않으면 기본 메시지로 ‘정규 표현식 “ISBN[1-9]+” 패턴과 일치해야 합니다’를 출력합니다.

@Size는 멤버 변수 name의 제약 사항입니다. 최소 4자 이상, 최대 50자 이하의 문자열 크기를 가져야 합니다. 유효성 검사를 할 때 name 값이 기준 문자열 크기에 해당되지 않으면 메시지 리소스 파일에 선언된 Size.NewBook.name의 메시지를 출력합니다. 메시지 리소스 파일에 해당 메시지가 선언되어 있지 않으면 기본 메시지로 ‘크기는 반드시 최솟값 4와 최댓값 50 사이의 값이어야 합니다’를 출력합니다.

~ 멤버 변수 unitPrice의 제약 사항으로 세 가지 JSR-380을 갖습니다.

@Min은 멤버 변수 unitPrice의 최솟값을 0으로 설정합니다. 유효성 검사를 할 때 최솟값이 0 미만이면 메시지 리소스 파일에 선언된 Min.NewBook.unitPrice의 메시지를 출력합니다. 메시지 리소스 파일에 해당 메시지가 선언되어 있지 않으면 기본 메시지로 ‘반드시 0보다 같거나 커야 합니다.’를 출력합니다.

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