인터셉터란?
인터셉터(Interceptor)는 웹 어플리케이션 내에서 특정한 URI 호출을 가로채는 역할을 한다.
필터와 인터셉터
서블릿 기술의 필터와 스프링 MVC의 인터셉터는 특정 URI에 접근할 때 제어하는 용도로 사용된다는 공통점이 있다.
하지만 실행 시점에 속하는 영역(Context)에 차이점이 있다.
인터셉터의 경우 스프링에서 관리하기 때문에 스프링 내의 모든 객체에 접근이 가능하지만, 필터는 웹 애플리케이션 영역 내의 자원들은 활용할 수 있지만 스프링 내의 객체에는 접근이 불가능하다.
스프링 AOP와 인터셉터
특정 객체 동작의 사전 혹은 사후 처리는 AOP 기능을 활용할 수 있지만, 컨트롤러의 처리는 인터셉터를 활용하는 경우가 더 많다.
AOP의 어드바이스와 인터셉터의 가장 큰 차이는 파라미터의 차이이다.
어드바이스의 경우 JoinPoint나 ProceddingJoinPoint 등을 활용해 호출 대상이 되는 메소드의 파라미터를 처리하는 방식이다.
인터셉터는 필터와 유사하게 HttpServletRequest, HTtpsServletResponse를 파라미터로 받는 구조이다.
HadlerInterceptorAdapter 클래스
: HanlerInterecptor를 쉽게 사용하기 위해서 인터페이스의 메소드를 미리 구현한 클래스
--> 사용안함, HandlerInterceptor 인터페이스로 클래스 구현
preHandle : 지정된 컨트롤러의 동작 이전에 가로채는 역할
postHandle : 지정된 컨트롤러의 동작 이후에 처리, DispatcherServlet이 화면을 처리하기전에 동작
afterCompletion : DospatcherServlet의 화면 처리가 완료된 상태에서 처리한다.
'IT > WEB' 카테고리의 다른 글
[Javascript] 자주쓰는 정규식 (0) | 2022.07.06 |
---|---|
[JAVA] log4j.properties를 이용한 로그 별도 관리(info, error 로그 분리) (0) | 2022.06.28 |
swagger ui 추가하기 API 설명 웹 페이지 (0) | 2022.06.20 |
[JAVA] 환경변수 값 불러오기 System.getenv() (0) | 2022.06.10 |
[Eclipse] Runnable JAR File Export의 Library Handling 옵션 (0) | 2022.05.27 |