인터셉터는 웹 애플리케이션에서 특정 URI의 호출을 가로채는 역할을 하는 객체를 말한다.

핸들러에서 모든 코드를 작성하는 것이 비효율적인 경우가 발생할 수 있다.

세션 체크나 인증과 같은 보안적인 문제를 핸들러에서 모두 처리한다면,메모리 낭비가 발생하고, 때로는 핸들러에서 누락하는 경우가 발생할 수 있다. 이럴때 인터셉터에서 이런 공통 부분을 따로 빼서 처리해 주는 역할을 한다.

Filter vs Interceptor vs AOP

interceptor.jpg

Filter와 Interceptor

AOP와 Interceptor

기본적인 인터페이스 구성요소와 관련 클래스

org.springframework.web.servlet.handler.HandlerInterceptorAdapter ****추상클래스를 오버라이딩 함으로써 자신만의 인터셉터를 만들수 있다.

기본적인 인터셉터 구현

1)인터셉터 클래스를 지정

@Configuration
public class IntercepterConfig01 implements WebMvcConfigurer {

	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(new LoginInterceptor01()).addPathPatterns("/login01");
		
		WebMvcConfigurer.super.addInterceptors(registry);
	}
}

2)인터셉터 클래스 정의