SPRING - Interceptor

이상해씨·2022년 11월 9일
0

웹 풀스택(JAVA)

목록 보기
52/54

✔Interceptor

1. 개요

◾HandlerInterceptor를 통한 요청 가로채기

  • Controller가 요청을 처리하기 전/후 처리.
  • Business Logic과 분리되어 처리해야 하는 기능에 유용
    • 로깅, 모니터링 정보 수집, 접근 제어 처리 등.
  • 여러 개를 설정할 수 있으나 순서를 주의해야함.

2. Interceptor

◾HandleRInterceptor Method

  • boolean preHandle(HttpServletRequest request, HttpServletResponse, Object handler)
    • false를 반환하면 request 종료.
  • void postHandle(HttpServletRequest request, HttpServletResponse, Object handler, ModelAndView modelAndView)
    • Controller 수행 후 호출.
  • void afterCompletion(HttpServletRequest request, HttpServletResponse, Object handler, Exception ex)
    • view를 통해 클라이언트에 응답을 전송한 뒤 실행.
    • 예외가 발생하여도 실행(finally와 비슷)

◾ Interceptor 호출 순서

3. Interceptor 구현

◾Interceptor 구현

  • HandlerInterceptor 인터페이스 또는 HandlerInterceptorAdaptor 클래스를 통해 구현.
public class LoggingInterceptor implements HandlerInterceptor{
	@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse, Object handler){
    	//code
    }
    
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse, Object handler, ModelAndView modelAndView){
    	//code
    }
    
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse, Object handler, Exception ex){
    	//code
    }

◾Interceptor 설정

  • servlet-context.xml
<beans:bean id="interceptor" class="package.LoggingInterceptor">

<interceptors>
	<interceptor>
    	<mapping path="path1"/>
        <mapping path="path2"/>
        <mapping path="path3"/>
        <beans:ref bean="interceptor" />
    </interceptor>
</interceptors>
profile
후라이드 치킨

0개의 댓글