[스프링] 인터셉터의 사용 방법

스프링 프레임워크에서 인터셉터(Interceptor)는 컨트롤러에 요청이 도달하기 전 또는 후에 특정한 작업을 수행할 수 있는 기능을 제공합니다. 이를 통해 요청을 가로채어 전처리나 후처리 작업을 할 수 있고, 로깅, 보안, 인증, 트랜잭션 관리 등 다양한 용도로 활용할 수 있습니다.

인터셉터 사용 방법

  1. HandlerInterceptor 인터페이스를 구현

     public class CustomInterceptor implements HandlerInterceptor {
            
         @Override
         public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
             // 컨트롤러 실행 전 수행할 작업
             return true;
         }
    
         @Override
         public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
             // 컨트롤러 실행 후 수행할 작업
         }
    
         @Override
         public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
             // 뷰 렌더링 후 수행할 작업
         }
     }
    
  2. 설정 클래스에서 인터셉터 등록

     @Configuration
     public class WebConfig implements WebMvcConfigurer {
        
         @Override
         public void addInterceptors(InterceptorRegistry registry) {
             registry.addInterceptor(new CustomInterceptor())
                     .addPathPatterns("/**")
                     .excludePathPatterns("/login"); // 예외 경로 설정
         }
     }
    

인터셉터 사용 시 유의할 점

참고 자료:
Spring Framework Documentation - Intercepting requests