Spring Interceptor란

성현·2024년 6월 26일
0

Spring Interceptor

목록 보기
1/3
post-custom-banner

Spring Interceptor
컨트롤러에 들어오는 HttpRequest와 HttpResponse를 가로채 컨트롤러 전 후로 적절한 처리를 해줌.

Filter와 Interceptor 차이

filter

서블릿의 영역으로 DispatcherServlet 이전에 체인을 따라 공통로직을 실행함.
주로 보안, 로깅, 문자열 인코딩 등에 사용한다.

interceptor

DispatcherServlet 이후 컨트롤러 호출 전 공통로직으로 인증과인가, 정보가공 등에 사용한다.

로직 실행을 위한 Interceptor

HandlerInterceptor

DispatcherServlet과 Controller 사이에서 처리해준다고 했는데 실제적으로는 처리를 위한 인터페이스를 구현해야한다.
controller가기전, 후, 뷰 완료 후 시점별로 처리할 수 있도록 되어있다.

인터페이스는 아래와 같다.

public interface HandlerInterceptor {

	// 컨트롤러 가기전 가로채서 동작 수행
	default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
            
		//Object handler : 요청된 컨트롤러 메소드
        // ex : {경로}TestRestController#findAll(ReplaceKwListParam)
		return true;
	}

	
    //컨트롤러 동작 이후 수행
	default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			@Nullable ModelAndView modelAndView) throws Exception {
            //ModelAndView 객체를 받아 확인 가능하다.
	}

	
    //화면 처리 완료 이후 호출
	default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
			@Nullable Exception ex) throws Exception {
	}
profile
행동하는 사람
post-custom-banner

0개의 댓글