Validator
Validator 인터페이스를 구현한 객체를 사용하는 방법.
컨트롤러 메소드 내의 코드
Validator를 컨트롤러에서 DI받아 두고 각 메소드에서 필요에 따라 직접 validate() 메소드를 호출하는 방법.@Valid를 이용한 자동검증
JSR-303 Valid 애노테이션을 사용하는 방법. @Valid 애노테이션을 차용했을 뿐 내부적으로는 스프링의 Validator가 사용된다.
컨트롤러 메소드 파라미터에 @Valid를 추가한다.
WebDataBinder는 @InitBinder 메소드에서 등록된 Validator를 이용해 모델을 검증한다.서비스 계층 오브젝트에서의 검증
Validator를 서비스 계층에서 DI받아 사용하는 방법.서비스 계층을 활용하는 Validator
검증 관련된 서비스 계층 로직을 호출하고 다시 본 메소드를 호출하는 방법.
비즈니스 로직이 반영되는 검증 작업은 세 번째, 네 번째 중 하나 적용하면 된다. 네 번째 방법이 좀 더 스프링다운 방법이다.
JSR-303 빈 검증 기능
표준 스펙으로 인증받은 JSR-303 빈 검증 방식도 스프링에서 사용할 수 있다.
LocalValidatorFactoryBean은 스프링의 Validator처럼 사용할 수 있게 해주는 일종의 어댑터다.
LocalValidatorFactoryBean을 빈으로 등록 후 컨트롤러에서 Validator타입으로 DI받아서 @InitBinder에서 WebDataBinder에 설정하거나 코드에서 직접 Validator처럼 사용할 수 있다.
모델 객체 프로퍼티에 @NotNull, @Min(0) 같이 애노테이션 설정을 하는 방법
'개발 > Spring' 카테고리의 다른 글
Spring KerberosRestTemplate 사용 예제 (0) | 2021.01.08 |
---|---|
스프링 @Async를 통한 비동기 처리 및 설정값 (0) | 2020.06.03 |
MyBatis cannot change the ExecutorType when there is an existing transaction 오류 (0) | 2018.04.14 |
Spring Batch skip 로직 동작 방식 (0) | 2017.04.24 |
Spring Batch commit-interval에 대한 정리 (0) | 2016.12.23 |