Java Spring HandlerInterceptors是如何实例化的?
每个请求是否都有一个新的Spring HandlerInterceptors实例 我在Spring中有一个拦截器,它有一个class字段Java Spring HandlerInterceptors是如何实例化的?,java,spring,interceptor,Java,Spring,Interceptor,每个请求是否都有一个新的Spring HandlerInterceptors实例 我在Spring中有一个拦截器,它有一个class字段 public class MyInterceptor extends HandlerInterceptorAdapter { Private boolean state = false; @Override public boolean preHandle(HttpServletRequest request, HttpServlet
public class MyInterceptor extends HandlerInterceptorAdapter {
Private boolean state = false;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
state = true;
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
if (state == true) {
System.out.println("Success");
}
}
如果使用此拦截器,它是否总是打印“成功”?(无论有多少线程同时执行此操作?如何实例化拦截器取决于如何将其配置为bean。如果没有显式地指定bean的作用域,那么它将像任何其他bean一样是一个单例,因此
state
字段将由所有请求共享
从这个意义上讲,拦截器与控制器没有什么不同——在将会话状态放入拦截器时要非常小心,因为对象将在请求之间共享
如果您确实需要一个有状态的拦截器,并且不想在请求之间共享状态,那么可以使用r