본문 바로가기
공부/프로그래밍

스프링(spring) 인터셉터(Interceptor) 설정하기

by demonic_ 2017. 4. 13.
반응형

Interceptor 는 목적에 따라 사용할 수 있는데 대표적인 것으로 로그인 인증같은 것일다. 예를들어 어떤 매뉴에 접근하는데, 해당 매뉴가 로그인이 되어있는지 여부를 필수적으로 점검해야할 때 등 그렇다. 


나는 Interceptor의 적용을 로그를 쌓는데에 두었다. 그래서 페이지를 접근할때마다 혹은 RESTFULL을 호출할 때마다 로그를 쌓게하기 위해서 Interceptor를 사용했다. 설정은 다음과 같다.


우선 스프링을 설정할 xml에 아래를 넣어두자

(내 경우는 servlet-context.xml 파일에 넣어두었다)



        
		
		
		
		
		
		
	



위에서 지정한 클래스를 생성해주자.

해당 클래스는 HandlerInterceptorAdapter 클래스를 꼭 상속시켜야 한다.

그리고 2개의 메서드를 오버로드 한다

public class LogDataFlowInterceptor extends HandlerInterceptorAdapter {

	// 여기는 서버에 요청될때 들리는 메서드
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {

		System.out.println("===========================  START");
		System.out.println(" URI \t:  " + request.getRequestURI());
		
		Enumeration paramNames = request.getParameterNames();
		while (paramNames.hasMoreElements()) {
			String key = (String) paramNames.nextElement();
			String value = request.getParameter(key);
			logger.debug(" RequestParameter Data ==>  " + key + " : " + value + "");
		}

		return super.preHandle(request, response, handler);
	}

	// 여기는 요청된 것을 처리하고 반환할때 들리는 메서드
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {

		System.out.println("===========================          END");

	}
}


이정도로만 정리하고 안에 어떻게 채울지는 개발조건에 따라 만들면 되겠다.

반응형

댓글