- Spring MVC 마스터하기 Validation 72022년 05월 26일
- starryeye
- 작성자
- 2022.05.26.:15
반응형Validation 6 에서는 Validator 인터페이스를 사용하여 컨트롤러에서 검증로직을 뺄 수 있었다..
하지만, 그 한줄.. validator의 validate 메서드 호출하는 그 한줄.. 도 빼고 싶다..
WebDataBinder를 사용해보자.
WebDataBinder
스프링의 파라미터 바인딩의 역할과 검증기능을 포함한다..
WebDataBinder에 구현한 Validator를 넣어주기만 스프링이 알아서 처리 해준다.
init : 메서드 컨트롤러가 호출 될 때 마다.. 호출 되는 메서드이다.
요청이 올 때 마다 WebDataBinder가 생성되고 그 WebDataBinder에 주입받은 Validator가 추가된다.
@InitBinder : 해당 클래스 컨트롤러에만 영향이 있다.
참고로 글로벌 설정(모든 클래스 컨트롤러)은 main 메서드가 있는 메인 클래스? 에서 별도로 작업 해야한다.
(비 추천)
@Validated, @Valid
init에서 WebDataBinder를 통해 구현한 Validator를 등록해놓고
위와 같이, 검증할 대상 파라미터 앞에 @Validated(스프링지원) 또는 @Valid(자바표준)을 적용하면
해당 메서드 컨트롤러가 호출 될 때 항상 검증된다.
@Validated : Validator의 validate 메서드를 실행하라는 어노테이션이다.
@Validated 어노테이션이 붙으면 앞서 WebDataBinder에 등록한 Validator를 찾아 실행함.
그러나.. 컨트롤러의 init 메서드에서 여러 Validator를 등록 해놨을 수도 있다..
이때 사용되는게 Validator의 supports 메서드이다.
반응형'Spring > MVC' 카테고리의 다른 글
Spring MVC 마스터하기 Validation 9 (0) 2022.05.26 Spring MVC 마스터하기 Validation 8 (0) 2022.05.26 Spring MVC 마스터하기 Validation 6 (0) 2022.05.26 Spring MVC 마스터하기 Validation 5 (0) 2022.05.17 Spring MVC 마스터하기 Validation 4 (0) 2022.05.17 다음글이전글이전 글이 없습니다.댓글