Spring/Spring MVC
[Spring MVC] 검증 - Bean Validation
잉숭
2021. 7. 18. 14:58
대부분의 검증 로직은 매우 일반적인 경우가 많다
따라서 이러한 검증 기술들을 모든 프로젝트에 적용할 수 있게 공통화하고 표준화 한 것이 바로 Bean Validation이다
이러한 Bean Validation을 사용하려면
spring-boot-starter-validation 의존관계를 추가해야 한다
의존관계를 추가하면 스프링 부트는 자동으로 글로벌 Validator(LocalValidatorFactoryBean)를 등록한다
검증 순서
1. @ModelAttribute 각각의 필드에 타입 변환을 시도한다
1.1 실패할 경우
- typeMismatch FieldError를 BindingResult에 추가한다
2. 글로벌 Validator 실행
BeanValidation 메시지 찾는 순서
1. MessageCodesResolver가 생성한 메시지 코드 순서대로 messageSource에서 메시지 찾기
2. 애노테이션의 message 속성 사용
3. 라이브러리 기본값 사용
ObjectError 처리
@ScriptAssert 어노테이션을 사용하면 ObjectError를 처리할 수 있지만 객체의 범위를 넘어가는 경우 사용할 수 없다
일반적으로 ObjectError의 경우 reject() 함수를 통해 직접 추가하는 것이 일반적이다