Validation 추상화
애플리케이션에서 사용하는 객체 검증용 인터페이스이다.
특징
- 모든 계층(웹, 서비스, 데이터)에서 사용 가능하다.
- Data Binder에 들어가 바인딩할 때같이 사용되기도 한다.
Validator를 만들어서 사용하기
- Event 클래스를 만들고 Getter, Setter를 붙여주었다.
- EventValidator를 만들어 Validator를 구현한다.
- supports는 어떤 타입의 객체를 검증할 때 사용할 것인지 결정하는 것이다.
- Event.class를 검증할 것이므로 Event.class와 파라미터를 비교해준다.
- validate는 실제 검증 로직을 구현하는 곳이다.
- ValidationUtils를 이용하여 title field가 비어있으면 에러를 확인하였다.
- Application Runner에서 EventValidator에 넣을 Errors가 필요하므로 Errors를 만들어 줬다.
- 그리고 validate에 event와 만든 errors를 아규먼트로 넘겨준다.
- 그 후 errors를 출력해보면 에러가 검증된 것을 확인할 수 있다.
Validation Annotation 활용하기
- 스프링 부트를 사용할 경우 복잡한 에러 검증 로직을 직접 만들 필요가 없고 스프링이 지원해주는 Validator를 사용할 수 있으며 Annotation으로 검증이 가능하다.
- 위와 같이 Event 클래스에 title, limit, email에 필요한 검증을 붙여준다.
- 그리고 AppRunner에서 event에 검증에 걸릴만한 값들을 넣고 스프링이 제공해주는 Validator를 통해 검증하면 이렇게 에러가 검증되고 출력되는 것을 확인할 수 있다.
'스프링 > 스프링 핵심 기술' 카테고리의 다른 글
SpEL(Spring Expression Language) (0) | 2019.12.17 |
---|---|
데이터 바인딩 추상화: Editor, Converter, Formatter (0) | 2019.12.16 |
ResourceLoader, Resource 추상화 (0) | 2019.12.16 |
7. IoC 컨테이너: ApplicationEventPublisher (0) | 2019.12.14 |
6. IoC 컨테이너: MessageSource (0) | 2019.12.14 |