谈谈你对Spring MVC理解【面试】

前言

Spring MVC是一种基于java,使用了MVC架构模式的思想,将Web层进行职责解耦,简化我们日常Web开发。Spring MVC核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。

1、Spring MVC的工作流程

在这里插入图片描述
上面的流程图很清楚的展示了Spring MVC的工作流程,下面用文字来详细说明下:

  1. 客户端发起请求,直接请求到DispatcherServlet,DispatcherServlet收到请求后,不会自己处理,而是委托给其它的解析器处理,自己进行全局的流程控制。
  2. 首先,DispatcherServlet请求HandlerMapping进行处理,HandlerMapping会获取HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)。
  3. 解析到Handler处理器后,会使用HandlerAdapter对Handler处理器进行包装。
  4. 然后,调用拦截器的preHandle方法进行拦截,返回true后,调用目标Handler的目标方法处理业务逻辑,得到ModelAndView对象,再调用拦截器的postHandle方法。
  5. ViewResolver 会根据ModelAndView 查找实际的 View。
  6. DispatcherServlet会将Model模型数据传进来交给View进行渲染视图。
  7. 调用拦截器的aferCompletion方法后,DispatcherServlet将渲染视图返回给浏览器。

2、核心类

  1. DispatcherServlet(前端控制器)
    说明:Spring MVC 的入口函数,接收请求,响应结果,相当于转发器,中央处理器,它就相当于mvc模式中的c,DispatcherServlet的存在降低了组件之间的耦合性。
  2. HandlerMapping(处理器映射器)
    说明:根据请求的url查找Handler(即处理器Controller),映射方式有配置文件方式,实现接口方式,注解方式等。
  3. HandlerAdapter(处理器适配器)
    说明:HandlerAdapter是适配器模式的应用,按照HandlerAdapter要求的规则去执行Handler。
  4. Handler(处理器)
    说明:Handler需要开发工程师按照HandlerAdapter的要求去做,是后端控制器,处理具体的业务逻辑。
  5. View resolver(视图解析器)
    说明:进行视图解析,首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。
  6. 视图View
    说明:View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf等)

结束语

本篇介绍了spring mvc的工作流程,以及核心类。我们再看看日常开发编写的Controller,自定义的HandlerInterceptor和View,是不是有了更深入的理解了。

原创文章 55 获赞 76 访问量 17万+

猜你喜欢

转载自blog.csdn.net/cool_summer_moon/article/details/105986316