SpringMVC工作原理详细讲解

虽然用了很长时间的SpringMVC这个框架,自己感觉运用的很6,可是近期面试却发现了一个很可怕的问题,什么是SpringMVC?SpringMVC的工作原理是什么?SpringMVC的优缺点有哪些?以前运用的时候,真的没有考虑到这些问题!

现在我们来探讨一下SpringMVC。

1.什么是SpringMVC?

答:Spring是一个模块,基于MVC的一个框架。MVC是一种设计模式。M代表model;V代表view;C代表controller。M指的是模型,即dao层和service层,V指的是视图,即jsp html 等。C指的是controller,即控制器。

2.SpringMVC的工作原理是什么?

答:用户发送请求由前置控制器DispatcherServlet来决定哪一个页面的控制器进行处理并把请求委托给它,在由HandlerMapping将请求映射为HandlerExecutionChain对象(包含Handler处理器对象(页面控制器),多个HandlerInterceptor对象即拦截器),在返回给DispatcherServlet,DispatcherServlet在次发送请求给HandlerAdapter,HandlerAdapter将处理器包装为适配器,调用处理器相应功能处理方法,Handler返回ModelAnView给HandlerAdapter,HandlerAdapter发送给DispatcherServlet进行视图的解析(ViewResolver),ViewResolver将逻辑视图解析为具体的视图,返回给DispatcherServlet,在进行视图的渲染(View),返回给DispatcherServlet,最后通过DispatcherServlet将视图返回给用户。

3.分工职责

3.1 前置控制器DispatcherServlet

        作用:接收请求  返回结果

3.2 映射处理器 HandlerMapping

      作用:根据请求映射为HandlerExecutionChain对象,查找对应的Handler

3.3 处理器适配 HandlerAdapter

      作用:调用处理器相对应的处理方法,返回ViewAndModel

3.4  视图解析器 ViewResolver

3.5  视图的渲染 View

4.SpringMVC的优缺点?

答:1.方便解耦,简化开发,职责鲜明,分工明确

2.AOP的很好支持,方便面向切面编程

    3.对主流的框架提供了很好的集成支持

    4.Spring属于低侵入,代码污染极低
经验分享 程序员 微信小程序 职场和发展