이 글에서는 /hello 로 시작되는 모든 path에 적용되는 interceptor를 생성해보도록 하겠다.
아래 interceptor는 해당 response를 인터셉트하여 interceptor-header라는 header를 response에 붙여주게 된다.
public class HelloInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { log.info("interceptor intercept request"); response.addHeader("interceptor-header", "interceptor added"); return true; } }
아래 WebConfig를 통해, 위 인터셉터는 /hello/** 와 같은 request path에 적용되게 된다.
@Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Autowired private HelloInterceptor helloInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(helloInterceptor).addPathPatterns("/hello/**"); } }
Test를 위해 /hello 와 /bye 라는 request path를 이용하는 request service를 생성하고,
테스트해보도록 한다.
아래 결과와 같이 /hello로 시작하는 request는 우리가 적용한 header가 적용되고,
/bye로 시작하는 request는 적용되지 않는 것을 알 수 있다.
- 실행 결과
위 전체 예제를 다운로드 받기 위해서, 아래 링크를 통해 이용할 수 있다.
https://gitlab.com/shashaka/request-interceptor-project
댓글 없음 :
댓글 쓰기