스프링_Interceptor 구현
다른 부분들은 AOP로 구현하는 것이 문제가 아니지만
Controller 부분이라면 Interceptor로 구현하는 것을 권장한다고 한다.
먼저 dispatcher-servlet.xml 에 Interceptor 사용하는 법을 설명 드리겠습니다.
먼저 mvc 라이브러리를 선언 합니다.
dispatcher-servlet.xml 상단에 적어주셔야 합니다!
<beans xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemalocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
그리고 Interceptor를 정의합니다.
< mvc:interceptors> < mvc:interceptor> < mvc:mapping path="/mp/**"> < !-- 예외일경우 아래와같이 --> < !-- < mvc:exclude-mapping path="/**" /> --> < bean class="lee.DefaultInterceptor"> < mvc:interceptor> < mvc:mapping path="/sm/**"> < bean class="lee.AdminInterceptor"/> < / mvc:mapping>
위의 코드에서 보이는
<mvc:mapping path="/mp/**" /> <--- 이부분에 Interceptors가 어느 시점에 적용될 것인가를 정의하는 부분입니다.
<bean class="lee.DefaultInterceptor"/> <---- Interceptors에 적용될 클래스 입니다.
이제 DefaultInterceptor 클래스를 만들어 보겠습니다.
public class DefaultInterceptor extends HandlerInterceptorAdapter { public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handler) throws Exception { System.out.println("DefaultInterceptor####################################preHandle"); return true; } public void postHandle(HttpServletRequest req, HttpServletResponse res, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("DefaultInterceptor####################################postHandle"); } }
첫번째 줄을 보시면 HandlerInterceptorAdapter 를 상속 받아야 합니다.
public class DefaultInterceptor extends HandlerInterceptorAdapter
그리고 함수를 오버라이드 해서 사용하면 되는데
preHandle : 컨트롤러에 진입하기전에 실행
postHandle : 수행 후 실행
으로 정의 됩니다.
저는 현재 preHandle 함수부분에 로그인 사용자의 세션을 체크해서 사용자의 로그인 여부를 확인하여
로그인 사용자가 아니라면 로그인 페이지로 강제로 이동 시키는데 활용하였습니다.
Interceptor의 구현은 스프링 기능 치고...(?) 굉장히 쉽다고 생각합니다. ^^ 하지만 강력한 기능이라고 생각됩니다.
'개발 > java,spring' 카테고리의 다른 글
[java]자바 pdf 파일 생성 (2) | 2016.06.03 |
---|---|
[java] java Map 같은값이 들어갈경우 (11) | 2016.05.28 |
[java]자바 날짜 계산(SimpleDateFormat, date, format) (0) | 2016.05.26 |
에러 : Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 (0) | 2016.04.28 |
[java]자바 스프링, spring AOP 구현 (xml 방식) (0) | 2016.04.21 |
[java spring]spring AOP 구현(Annotation 방법) (0) | 2016.04.16 |
[spring]스프링 aop 개념 (0) | 2016.04.16 |