Hansel

검증 처리 / Bean Validation 본문

Spring/MVC

검증 처리 / Bean Validation

핑슬 2022. 3. 29. 18:55
더 편한 검증처리 

이전 글에서는 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를
인지하고 스프링에 통합한다


검증 순서
  1. @ModelAttribute 각각의 필드에 타입 변환 시도
  2. 성공하면 다음으로
  3. 실패하면 typeMismatch 로 FieldError 추가
  4. 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