-
2024.09.20 filter, interceptor, aopTIL 2024. 9. 20. 15:37
filter, interceptor, aop의 차이
기능적인 차이를 보자면..
filter는 servlet container에서 동작하기 때문에 무슨 메소드가 실행되는지 모른다.
interceptor의 prehandle은 handler adaptor 전에 실행되는 것 이기 때문에 handler method를 구할 수 있다.
aop는 좀 다른게 단순 request에만 적용할 수 있는 게 아닌 모든 layer 메소드에 걸 수 있다.
interceptor에서 afterCompletion의 차이
postHandle은 예외 때문에 실행이 안될 수 있다.
무조건 실행되어야한다면 afterCompletion을 사용하면 된다.
범위는 잘 알려져 있는데 filter는 tomcat에서(sevlet container)동작하고 그 이후에 Dispatcher servlet이 동작한다.
interceptor는 spring context에서 동작하는데 위의 코드 처럼 handler adaptor전에 동작하는 것을 알 수 있다.
aop는 spring aop를 사용하면 cglib를 동해 구현되는데, proxy패턴으로 동작한다.
adaptor가 실행을 시키면 proxy기 때문에 proxy가 동작한다. proxy안에는 chains을 조회해서 method interceptor들을 실행시킨다.
'TIL' 카테고리의 다른 글
2024.10.05 NAT (0) 2024.10.05 2024.09.21 java-acquire-lock-by-key (0) 2024.09.22 2024.09.16 JDBC Internal - 타임아웃의 이해 (0) 2024.09.16 2024.09.13 hikaricp autoreconnect (0) 2024.09.14 2024.09.12 Check If a Username (0) 2024.09.12