본문 바로가기

Spring/MVC

스프링 MVC - 그 외 다양한 어노테이션들

DataBinder - @InitBinder

 

 

InitBinder 를 사용하면 

바인딩 설정,  포메터 설정, Validator 설정을 할 수 있는데,

바인딩 설정을 하면, 원하는 값을 허용하거나 거부하거나 설정을 할 수 있다.

 

Validator 는 객체 위에 @NotBlank 이런 어노테이션으로는 할 수  없는

커스텀한 검증을 하고 싶을때 커스텀 Validator 를 생성 할 수 있다.

 

 

 

 

이런식으로 커스텀한 Validator 를 만들 수 있다.

 

supports 에 커스텀할 객체를 설정하고,

validate 에 실제 검증할 로직을 적어준다.

 

addValidators 에 넣어주면된다.

 

아니면 , Validator 자체를 빈으로 등록하고 , (@Component)

이런식으로도 검증할 수 있다.

이런식으로 쓸 경우에는 interface를 구현할 필요도 없다.

 

마지막으로, InitBinder 에 value 를 줄 수 있는데,

위 경우에는 Event 객체를 받았을때만 이 initBinder 를 쓸 수 있도록 할 수 있다.

 

 

 

예외 처리 핸들러 @ExceptionHandler

 

예외처리 핸들러를 생성 할 수 있다.

EventException 이라는 커스텀한 RuntimeException 을 만들었다고 가정을 하면,

 

다른 핸들러에서 EventException을 발생 시키면, 해당 예외처리 핸들러가 실행이 된다.

 

 

@ControllerAdvice

 

 

모든 컨트롤러에 적용을 하고 싶으면 ControllerAdvice 를 사용한다.

이런식으로 특정 컨트롤러에서만 적용할 수도 있다.