[Mark1] Web MVC 설정

iniestar·2021년 12월 30일
0

Mark1

목록 보기
4/4

스프링에서는 URL의 특정 패턴을 처리할 수 있는 옵션들을 제공하고 있다. 본 프로젝트에서는 여러 옵션 중 ViewController와 Interceptor를 설정하는 것을 다룰 것이다.

우선 기본적인 Web MVC 설정 클래스 생성 방법은 다음과 같다.

public class WebConfig implements WebMvcConfigurer

"WebMvcConfigurer" 인터페이스를 상속 받으면 여러가지 옵션들을 오버라이딩 할 수 있다. 그 중 "addViewControllers" 와 "addInterceptors" 함수를 사용할 것 이다. 사용 방법은 다음과 같다.

1) addViewControllers

"addViewControllers" 함수는 특정 URL 주소를 View 페이지로 리턴하는 기능을 갖는다. 여기에서는, 루트('/')를 입력하였을 때 login 페이지로 이동하는 설정을 하였다. 사실 이 기능은 스프링에서 기본적으로 제공하는 기능이나 추후 응용을 위해 작성하였다.

2) addInterceptors

"addInterceptors" 함수는 특정 패턴의 URL 호출 시 이를 감지하여 컨트롤러로 가기 전 또는 컨트롤러 이후의 데이터를 가로채기한다. 별도의 핸들러를 생성하여 주입하면 HandlerInterceptor 인터페이스를 통해 reqeust, response, handler, modelAndView 데이터들을 가공할 수 있다.

@Autowired
CustomHttpInterceptor HandlerInterceptor;
 
@Override
public void addInterceptors(InterceptorRegistry registry) {
//        WebMvcConfigurer.super.addInterceptors(registry);
	registry.addInterceptor(HandlerInterceptor)
			.addPathPatterns("/**");
}

여기에서, Autowired된 HandlerInterceptor는 별도로 생성한 핸들러 클래스이다.

public class CustomHttpInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        return HandlerInterceptor.super.preHandle(request, response, handler);
    }
 
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
    }
 
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
    }
}
profile
while(true) { 손가락 관절염++ };

0개의 댓글