-> 가로채는 것, 가로채는 사람
그렇다면 interceptor는 프로그램에서 어떻게, 어떤부분에서 실행될까?
위 그림을 보면 Request와 Controller 사이에서 interceptor가 있다.
* 노란색 화살표가 interceptor
preHandler() : 컨트롤러가 호출되기 전에 실행
-> 이 메서드만 return값이 있다. (boolean형)
postHandler() : 컨트롤러가 실행된 후에 호출
afterCompletion() : 요청 처리가 완료된 후에 뷰를 렌더링, & 콜백 & 핸들러 실행의 모든 결과에 호출되므로 적절한 리소스 정리가 가능하다.
-> preHandler()가 성공적으로 완료되고 true를 리턴한 경우에만 호출된다.
여기까지보면 짐작 할 수는 있다.
컨트롤러가 호출되기 전 후에 실행되겠구나. 그럼 컨트롤러는 누가 호출하지 => dispatcher-servlet이 호출
HandlerInterceptor document link (한 번씩 읽어보는 걸 추천)
=> https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/HandlerInterceptor.html
HandlerInterceptor (Spring Framework 5.2.6.RELEASE API)
Intercept the execution of a handler. Called after HandlerMapping determined an appropriate handler object, but before HandlerAdapter invokes the handler. DispatcherServlet processes a handler in an execution chain, consisting of any number of interceptors
docs.spring.io
interceptor 사용방법
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:spring_mvc_tag_configuration
egovframework:rte2:ptl:spring_mvc_tag_configuration [eGovFrame]
Spring 3.0부터 제공하는 mvc 태그 설정이다. Annotation기반의 Controller호출 설정과 필요한 bean설정을 편리하게 하도록 만들어졌다. 그러나 내부 수정이 어렵기 때문에 mvc:annotation-driven에서 제공하는 ��
www.egovframe.go.kr
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.