Discuss / Java / 评论区看到一个很重要的点,Controller处理完数据或者渲染页面时后会先去执行拦截器中afterCompletion方法,再返回页面或数据

评论区看到一个很重要的点,Controller处理完数据或者渲染页面时后会先去执行拦截器中afterCompletion方法,再返回页面或数据

Topic source

Loading...

#1 Created at ... [Delete] [Delete and Lock User]

评论区看到一个很重要的点,Controller处理完数据或者渲染页面时后会先去执行拦截器中afterCompletion方法,再返回页面或数据。

查看springWeb源码可以看到

        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

 里面有一个  processDispatchResult   方法,其中这块代码可以看到处理完modelView后,走拦截器的afterCompletion方法

       if (!WebAsyncUtils.getAsyncManager(request).isConcurrentHandlingStarted()) {
            if (mappedHandler != null) {
                mappedHandler.triggerAfterCompletion(request, response, (Exception)null);
            }

        }

  • 1

Reply