본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA/Spring

공통처리 삼총사, Filter Interceptor AOP

공통처리 삼총사, Filter Interceptor AOP
1. Filter
2. Interceptor
3. AOP

요청시 아래의 순서로 실행
Filter → Interceptor → AOP → Interceptor → Filter 순

Filter
한글처리를 위한 인코딩 필터와 같은 자원의 앞단에서 요청내용을 변경하거나,  여러가지 체크를 수행
init() - 필터 인스턴스 초기화
doFilter() - 전/후 처리
destroy() - 필터 인스턴스 종료

Interceptor

DistpatcherServlet이 컨트롤러를 호출하기 전, 후 로 가로챔
로그인 체크, 권한체크, 프로그램 실행시간 계산작업 로그확인 등을 수행
preHandler() - 컨트롤러 메서드가 실행되기 전
postHanler() - 컨트롤러 메서드 실행직 후 view페이지 렌더링 되기 전
afterCompletion() - view페이지가 렌더링 되고 난 후

AOP
Interceptor와 Filter는 주소로 대상을 구분해서 걸러내야하는 반면, 
AOP는 주소, 파라미터, 애노테이션 등 다양한 방법으로 대상을 지정할 수 있다.
@Before: 대상 메서드의 수행 전
@After: 대상 메서드의 수행 후
@After-returning: 대상 메서드의 정상적인 수행 후
@After-throwing: 예외발생 후
@Around: 대상 메서드의 수행 전/후