Hansel
검증 처리 / Bean Validation 본문
더 편한 검증처리
이전 글에서는 BindingResult의 FieldError 혹은 rejectValue 등을 사용한 에러처리 방법을 보았다.
하지만 그 방법들 또한 여러 파라미터를 처리해야하는 문제로 귀찮은 점이 분명 존재한다.
조금 더 편하게 에러를 검증할 수 있는 방법이 존재한다.
Bean Validation
공식 사이트: http://hibernate.org/validator/
공식 메뉴얼: https://docs.jboss.org/hibernate/validator/6.2/reference/en-US/html_single/
검증 애노테이션 모음: https://docs.jboss.org/hibernate/validator/6.2/reference/en-US/
The Bean Validation reference implementation. - Hibernate Validator
Express validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
hibernate.org
- 시작

Bean Validation을 사용하려면 다음 의존관계를 추가해야 한다.
implementation 'org.springframework.boot:spring-boot-starter-validation'
- 어노테이션을 활용한 검증


어노테이션의 종류
- @NotBlank : 빈값 + 공백만 있는 경우를 허용하지 않는다.
- @NotNull : null 을 허용하지 않는다.
- @Range(min = 1000, max = 1000000) : 범위 안의 값이어야 한다.
- @Max(9999) : 최대 9999까지만 허용한다
스프링과 Bean Validation 통합

스프링 MVC는 어떻게 Bean Validator를 사용하나?
=> 스프링 부트가 spring-boot-starter-validation 라이브러리를 넣으면 자동으로 Bean Validator를
인지하고 스프링에 통합한다
검증 순서
- @ModelAttribute 각각의 필드에 타입 변환 시도
- 성공하면 다음으로
- 실패하면 typeMismatch 로 FieldError 추가
- Validator 적용
Bean Validation을 활용한 필드 에러 처리하기


이전의 방법과 유사하게 error.properties에 메세지들을 입력하고 해당 메세지들을 호출하는 방식의 처리가 가능하다.
객체와 필드명을 조합하여 구체적으로 적용할 수 있다.
오브젝트 에러 처리
다양한 필드를 조합해서 에러를 처리해야 한다면 그건 그냥 자바 코드로 작성하여 하자
메세지를 여러개 작성해서 처리하는 것도 가능해 보이지만 그것보단 코드를 작성해서 처리하는게 더 편해보인다.

'Spring > MVC' 카테고리의 다른 글
| 검증 처리 / 객체와 폼 분리 (0) | 2022.03.29 |
|---|---|
| 검증 처리 / Validator (0) | 2022.03.29 |
| 검증 처리 / BindingResult 2 (0) | 2022.03.29 |
| 검증 처리 / BindingResult (0) | 2022.03.29 |
| 6. 메세지와 국제화 (0) | 2022.03.29 |