Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring HandlerInterceptors是如何实例化的?_Java_Spring_Interceptor - Fatal编程技术网

Java Spring HandlerInterceptors是如何实例化的?

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

每个请求是否都有一个新的Spring HandlerInterceptors实例

我在Spring中有一个拦截器,它有一个class字段

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