인터셉터를 이용해 Controller 공통 로직 처리하기 - accidentlywoo/legacyVue GitHub Wiki
인터셉터를 이용해 Controller 공통 로직 처리하기
- 들어가기 전에 이번 시간엔 웹 어플리케이션에 인터셉터를 적용해 컨트롤러 메소드가 실행되기 전에, 컨트롤러 메소드가 실행된 이후에 콘솔에 로그를 남기는 예제를 작성해 보도록 하겠습니다.
학습 목표
- Spring MVC 웹 어플리케이션에 인터셉터를 적용할 수 있다.
핵심 개념
- HandlerInterceptorAdapter
- WebMvcContextConfiguration의 addInterceptors() 메소드
- InterceptorRegistry
실습코드
LogInterceptor.java `package kr.or.connect.guestbook.interceptor;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class LogInterceptor extends HandlerInterceptorAdapter{
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println(handler.toString() + " 가 종료되었습니다. " + modelAndView.getViewName() + "을 view로 사용합니다.");
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println(handler.toString() + " 를 호출했습니다.");
return true;
}
}WebMvcContextConfiguration 에 addInterceptors() 메소드를 추가합니다. 인자로 넘어온 InterceptorRegistry의 addInterceptor에 앞에서 만든 인터셉터 객체를 넣어주면 추가가 됩니다.
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LogInterceptor());
}`
생각해보기
- 인터셉터를 이용해 어떤 일들을 공통처리할 수 있을까요?