虽然用了很长时间的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属于低侵入,代码污染极低
网友评论