Spring - 필터(Filter)와 인터셉터(Interceptor)의 차이


• 필터(Filter)는 J2EE 표준 스펙에 있는 기능으로, 디스패처 서블릿에 요청 전/후에 부가적인 작업을 처리할 수 있다. 인터셉터(Interceptor)는 스프링이 제공하는 기술로, 디스패처 서블릿이 컨트롤러를 호출하기 전과 후에 요청을 가로채서 응답을 참조하거나 가공할 수 있다.
• 필터는 주로 @WebFilter 애노테이션을 사용해 등록하며, 인터셉터는 HandlerInterceptor 인터페이스를 구현해야 한다. 필터는 init, doFilter, destroy 메소드를 가지고 있고, 인터셉터는 preHandle, postHandle, afterCompletion 메소드를 가진다.
• 필터와 인터셉터의 차이: 필터는 웹 애플리케이션에 등록하여 처리 전후를 다루며, 인터셉터는 스프링 컨텍스트에 등록하여 컨트롤러에 넘겨주는 데이터를 가공할 때 사용한다.
• AOP는 로깅, 트랜잭션, 에러 처리 등 비즈니스 단에서의 메서드를 세밀하게 조정할 때 사용하며, 인터셉터와 달리 주소(URL) 기반 처리가 아니다.

북마크
공유하기
신고하기