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 MyInterceptor1 extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("=-------------------preHandle1");
return true;
}
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception {
System.out.println("=-------------------postHandle1");
}
@Override
public void afterCompletion(
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("=-------------------afterCompletion1");
}
@Override
public void afterConcurrentHandlingStarted(
HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("=-------------------afterConcurrentHandlingStarted1");
}
}
public class MyInterceptor2 extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("=-------------------preHandle2");
return true;
}
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception {
System.out.println("=-------------------postHandle2");
}
@Override
public void afterCompletion(
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("=-------------------afterCompletion2");
}
@Override
public void afterConcurrentHandlingStarted(
HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("=-------------------afterConcurrentHandlingStarted2");
}
}
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="****MyInterceptor1" autowire="byName"/>
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class=" ** Interceptor.MyInterceptor2" ></bean>
</mvc:interceptor>
</mvc:interceptors>
一 正常调用是打印语句为
System.out.println("=-------------------preHandle1");
System.out.println("=-------------------preHandle2");
System.out.println("=-------------------postHandle2");
System.out.println("=-------------------postHandle1");
System.out.println("=-------------------afterCompletion2");
System.out.println("=-------------------afterCompletion1");
二 如果一步调用(多线程调用)
System.out.println("=-------------------preHandle1");
System.out.println("=-------------------preHandle2");
System.out.println("=-------------------afterConcurrentHandlingStarted2");
System.out.println("=-------------------afterConcurrentHandlingStarted1");
//新开线程重新处理
System.out.println("=-------------------preHandle1");
System.out.println("=-------------------preHandle2");
System.out.println("=-------------------postHandle2");
System.out.println("=-------------------postHandle1");
System.out.println("=-------------------afterCompletion2");
System.out.println("=-------------------afterCompletion1");
Spring aop拦截器实现
最新推荐文章于 2022-05-15 14:28:16 发布