Spring Interceptor 개념 및 예제

김수현·2022년 6월 20일
0

Spring

목록 보기
2/3

Interceptor란 Controller에 들어오는 요청 HttpRequest와 Controller가 응답하는 HttpResponse를 가로채는 역할을 한다.

이를 활용해 예시로 로그인이 필요한 페이지에 접근하기 전 로그인 인증을 하는 용도 등 사용할 수 있다.

Interceptor는 Filter와 역할이 유사하지만 차이가 분명히 있다.

  1. 호출 시점
  • Interceptor는 DispatcherServlet이 실행된 후
  • Filter는 DispatcherServlet이 실행되기 전
  1. 설정 위치
  • Interceptor는 spring-servlet.xml
  • Filter는 web.xml
  1. 구현 방식
  • Interceptor는 설정 외에도 Method 구현이 필요
  • Filter는 설정만으로 구현 가능

이 글에서는 로그인이 필요한 페이지에 접근하기 전 로그인 인증을 하는 예제를 구현하려고 한다.

설정

/profile/** 경로의 모든 요청을 가로채서 com.project.pet.interceptor 패키지에 있는 NonLoginInterceptor 객체를 실행한다는 코드이다.

HandlerInterceptor Interface 구현

먼저 HandlerInterceptor Interface를 구현하여야 하는데
그러기 위해서는 preHandle Method, postHandle Method, afterCompletion Method를 구현해야 한다.
각 Method는 예제의 주석과 같이 실행된다.

각 Method의 반환 값이 true이면 Handler의 다음 실행이 진행되지만 false이면 남은 Interceptor와 Controller가 실행되지 않는다.

테스트를 위해서 설정했었던 경로의 Controller를 작성하여 URL를 요청해보면 되겠다.

이렇게 Interceptor의 개념과 예제를 간단히 포스팅해 보았다.

profile
안녕하세요 [22.06.19 개설]

0개의 댓글