Interceptor
- Interceptor : 요청에 대한 작업 전/후로 가로챈다.
- Filter와 다르게 DispatcherServelt이 컨트롤러를 호출하기 전, 후로 끼어들기 때문에 Spring context영역 내부에서 controller에 관한 요청과 응답에 대해 처리.
- HandlerInterceptor 를 구현하여 사용하며 preHandle,postHandle,afterCompletion 메서드를 구현하여 사용가능하다.
- preHandle : 컨트롤러 실행 전
- postHandle : 컨트롤러 수행 후 결과를 뷰로 보내기 전
- afterCompletion : 뷰의 작업까지 완료된 후 수행
WebConfing 설정
- interceptor 사용 설정은 아주 간단하다
- addInterceptor 를 통해 생성한 인터셉터를 넣어주고 적용할 패턴을 작성하면 된다.
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("classpath:/static/");
}
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(baseInterceptor()).addPathPatterns("/**");
}
@Bean
public BaseInterceptor baseInterceptor(){
return new BaseInterceptor();
}
}
BaseInterceptor
- 간단하게 디버깅을 해보면 요청 전/후로 각 메서드에서 요청을 가로채는것을 확인 할 수 있다.
public class BaseInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle");
return true;
}
}
'Spring > SpringBoot' 카테고리의 다른 글
[SpringBoot] @WithSecurityContext 커스텀하기 (0) | 2024.03.20 |
---|---|
[Spring Boot] @ConfigurationProperties (0) | 2024.03.15 |
[Spring Boot] Spring Security 6버전 셋팅 (0) | 2024.03.12 |
[SpringBoot] Gradle 설정 (0) | 2023.03.08 |
[SpringBoot] JPA (0) | 2023.03.08 |