Spring Interceptor
Spring Interceptor
Spring Interceptor
- 컨트롤러에 들어온
HttpRequest
와 컨트롤러가 응답하는 HttpResponse
를 가로채어 추가 로직을 실행하는 모듈 - 관리자 인증 / 로그인 처리 등의 용도로 사용 가능
- Filter와 달리
DispatcherServlet
이 실행된 후 호출됨 HandleInterceptor
인터페이스를 상속받아서 구현 가능. 다음 메소드들을 구현해야 함preHandle
메서드는 컨트롤러로 보내기 전에 동작postHandle
메서드는 컨트롤러의 handler 처리가 끝난 후 동작afterCompletion
메서드는 view가 렌더링 된 후 실행됨
HandlerInterceptorAdapter
클래스를 상속받는 경우 preHandle
메서드만 구현해도 됨
인터셉터 설정 방법
WebMvcConfigurer
인터페이스를 구현한 설정 클래스 에서 인터셉터를 설정 가능- 설정 클래스에서
addInterceptors
메서드를 구현해 인터셉터를 추가 가능 - 이 메소드에 입력으로 들어온
registry
에 addInterceptor
메소드를 호출해서 추가 가능 addPathPatterns, excludePathPatterns
등을 적용해 추가 혹은 제외할 URL 패턴을 등록 가능
References
- https://velog.io/@gillog/Spring-InterceptorHandlerInterceptor-HandlerInterceptorAdapter
- https://victorydntmd.tistory.com/176
- https://congsong.tistory.com/24