이 글에서는 /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


댓글 없음 :
댓글 쓰기