공통처리
- Interceptor 와 Filter 는 Servlet 단위에서 실행된다.
- AOP는 메소드 앞에 Proxy 패턴의 형태로 실행된다.
- Filter -> Interceptor -> AOP 순으로 실행되었다가 나옴.
- Server를 실행시켜 Servlet이 올라오는 동안에 init이 실행.
- doFilter 실행.
- Controller에 들어가기 전 preHandler 실행.
- Controller에서 나와 postHandler, afterComletion, doFilter 순으로 진행.
- Servlet 종료시 destory가 실행.
Filter
❗️요청과 응답을 거른 뒤 보냄
❗️스프링 컨텍스트 외부에 존재해서 스프링과 무관한 자완에 대해 동작
- web.xml에 등록.
- 인코딩 변환 처리, XSS방어 등의 요청에 대한 처리로 사용
Interceptor
❗️무언가를 가로챈다.
❗️컨트롤러 호출 전/후로 끼어들기 때문에 스프링 컨텍스트 내부에서 요청과 응답에 대해 처리한다.
❗️스프링의 모든 빈 객체에 접근할 수 있음.
- 인터셉터는 여러 개를 사용할 수 있고 로그인 체크, 권한 체크, 프로그램 실행시간 계산작업, 로그확인 등의 업무처리를 함
HandlerInterceptor
- HandlerInterceptor 인터페이스를 implement해서 구현
- preHandle: 컨트롤러 매서드 실행 전
- postHandle: 메스드 실행 후 view 렌더링 전
- afterCompletion: view 렌더링 된 후
preHandle
❗️컨트롤러의 메서드에 매핑된 특정 URI가 호출됐을 때 실행
postHandle
❗️컨트롤러를 경유한 후, 화면으로 결과를 전달하기 전에 실행되는 메서드
AOP
❗️OOP를 했을 때 중복을 줄이기 위해 처리