반응형
LocalValidatorFactoryBean
- JSR-303의 검증 기능을 사용할 수 있도록 하는 일종의 어댑터다.
- JSR-303의 bean 검증 방식을 통해 오브젝트의 필드에 달린 제약조건 어노테이션을 이용해 검증을 진행할 수 있다.
예시
public class User {
int id;
@NotNull // null 값이 아님을 검증
@Size(min=1, max=50) // 빈 문자열 방지, 최대 크기 제한
String name;
@Min(0) // 최소값을 0으로 지정
int age;
}
- 이 팩토리 빈이 생성하는 bean의 타입은 org.springframework.Validation.Validator다. LocalValidatorFactoryBean을 bean으로 등록해두고 이를 DI 받아서 @InitBinder에서 WebDataBinder에 설정하거나, WebBindingInitializer를 이용해 모든 컨트롤러에 일괄적으로 적용하는 등의 방식으로 사용하면 된다.
<bean id="localValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
- 직접 검증 로직을 담은 ConstraintValidator의 구현체를 만들어서 제약조건 어노테이션으로 사용할 수도 있다.
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy=UserNameValidator.class)
public @interface UserName {}
- 에러 코드는 해당 어노테이션의 이름으로 지정된다. 이를 활용하여 messages.properties에 에러 메시지를 작성해두면 해당 에러가 발생했을 때 BindingResult에 반영된다. 디폴트 에러 메시지는 자동으로 등록되기 때문에 필수 사항은 아니다. 자세한 내용은 아래 포스팅을 참고하자.
https://kimcoder.tistory.com/528
● 참고 자료 : 토비의 스프링 3.1 Vol.2
반응형
'Spring Series > Spring Framework' 카테고리의 다른 글
[Spring] 메시지 컨버터를 이용하는 Ajax 컨트롤러 (0) | 2022.09.28 |
---|---|
[Spring] 프로퍼티 파일에서 BindingResult 메시지 관리하기 (0) | 2022.09.25 |
[Spring] 자주 사용되는 WebDataBinder 설정 항목 (0) | 2022.09.22 |
[Spring] 프로퍼티 바인딩 방식(2) - Converter와 Formatter (0) | 2022.09.21 |
[Spring] 프로퍼티 바인딩 방식(1) - PropertyEditor (0) | 2022.09.17 |
댓글