독서하는 개발자's Blog

반응형

interceptor란?

-> 가로채는 것, 가로채는 사람

 

그렇다면 interceptor는 프로그램에서 어떻게, 어떤부분에서 실행될까?

위 그림을 보면 Request와 Controller 사이에서 interceptor가 있다.

* 노란색 화살표가 interceptor

 

preHandler(), postHandler(), afterCompletion()은 뭘까?

 

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

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band