스프링에서 Filter, Interceptor, AOP는 모두 어떤 동작 이전/이후에 추가적으로 처리해주어야 할때 사용한다.

기능적으로는 비슷한데 내부 구현적으로는 차이가 있다.

 

Filter, Interceptor : Sevlet 단위에서 실행

AOP : 메소드 앞에 proxy 패턴의 형태로 실행

 

그래서 실행 순서도 차이가 있다 ???

 

Filter -> Interceptor -> AOP -> Interceptor -> Filter 순이다

이미지 참조 : blog.naver.com/platinasnow/220035316135

 

Request -> Servlet Filter -> Dispatcher Servlet -> HandlerInterceptor -> Controller

 

1. 서버를 기동시켜 서블릿이 올라오는 동안 init 실행 되고 FilterdoFilter 실행

2. 컨트롤러 이전에 InterceptorpreHandler실행

3. 컨트롤러 빠져나온다음 InterceptorpostHandler, afterCompletion 실행

4. FilterdoFilter 진행

5. 서블릿 종료시 destroy 실행

 

AOP는 주로 비지니스 로직단에서 로깅,트랜잭션, 공통예외처리 에서사용한다.

 

 

참고

hayunstudy.tistory.com/53

 

# Filter , Interceptor , AOP 사용목적 정리

Filter,Interceptor,AOP 모두 요청 중간에 가로채서 사전처리,사후처리를 하는 의미는 비슷하다. 로깅처리 또한 셋다 가능. 차이점이라고 하면 , 1. 셋의 시점이 다르다는것 : Filter -> Interceptor -> AOP 2. 적

hayunstudy.tistory.com

junshock5.tistory.com/142

 

Filter, Intercepter, AOP 차이점

[ 배경 ] 자바 웹 개발을 하다 보면, 공통적으로 처리해야 할 업무가 생깁니다. 예를 들어 로그인 관련 세션 처리, 사용자 권한 체크, XSS(Cross Site Script) 방어 로직, PC Mobile 플랫폼 분기 처리, 로그

junshock5.tistory.com

 

+ Recent posts