Loading...
Spring Framework Reference Documentation 7.0.2의 Interception의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
모든 HandlerMapping implementation은 handler interception을 지원하며, 이는 요청 전반에 기능을 적용하고자 할 때 유용합니다. HandlerInterceptor는 다음을 구현할 수 있습니다:
preHandle(..) — 실제 handler가 실행되기 전에 호출되는 callback으로, boolean을 반환합니다.
메서드가 true를 반환하면 실행이 계속되고, false를 반환하면 나머지 execution chain은 건너뛰며 handler는 호출되지 않습니다.postHandle(..) — handler가 실행된 후의 callback입니다.afterCompletion(..) — 완전한 request가 끝난 후의 callback입니다.
@ResponseBody및ResponseEntitycontroller 메서드의 경우, response는postHandle이 호출되기 전에HandlerAdapter내에서 작성되고 commit됩니다. 이는 추가 header를 더하는 등의 response 변경을 하기에는 이미 늦었다는 것을 의미합니다.ResponseBodyAdvice를 구현하고 이를 Controller Advice bean으로 선언하거나RequestMappingHandlerAdapter에 직접 구성할 수 있습니다.
interceptor를 구성하는 방법에 대한 예시는 MVC configuration 섹션의 Interceptors를 참고하십시오. 또한 개별 HandlerMapping implementation에 대한 setter를 사용하여 interceptor를 직접 등록할 수도 있습니다.
Interceptor는 annotation이 적용된 controller path matching과의 불일치 가능성 때문에 security layer로는 이상적이지 않습니다. 일반적으로 Spring Security 사용을 권장하며, 또는 유사한 접근 방식을 Servlet filter chain과 통합하여 가능한 한 이른 시점에 적용하는 것을 권장합니다.
Path Matching
Exceptions