SpringMVC的原理解析

SpringMVC是当前最为优秀的一款MVC的框架,自从SpringMVC 2.5版本发布之后,由于支持了注解配置,大大的提升了易用性。SpringMVC3.0也逐渐优化完善,在市场占比超越了Struts2。成为一款主流的web层框架。

对于Springmvc3:

1.SpringMVC使用简单,学习成本低。面向方法。学习难度要比Struts2低,精简。

2.SpringMVC很容易就可以写出优秀性能,执行效率的程序,Struts2要处处小心才可以写出执行效率高的程序。相对来说给为上手。

3.SpringMVC的灵活是你无法想象的,Spring框架的扩展性是受大众认为的,SpringMVC当然也不会落后,不会因为使用了MVC框架而影响程序的运行。

在SpringMVC中有几个重要的接口和类:

DispatcherServlet   ---   前置控制器

HandlerMapping接口   ---   处理请求的映射

HandlerMapping对应的实现类:

    SimpleUrlHandlerMapping   ---   通过配置文件,把一个URL映射到Controller

    DefaultAnnotetionHandlerMapping   ---   通过注解,把一个URL映射到Controller类上。

HandlerAdapter接口   --- 处理请求的映射

AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上。

Controller接口   ---   控制器

由于在开发中使用了@Controller注解,添加了@Controller注解的类就可以实现控制器的功能。

HandlerInterceptor接口  ---  拦截器

ViewResolver接口的实现类

UrlBasedViewResolver类 通过配置文件,把一个视图名交给到一个View来处理

InternalResourceViewResolver类,比上面的类,加入了JSTL的支持

View接口

JstlView类

LocalResolver接口

HandlerExceptionResolver接口   ---   异常处理

SimpleMappingExceptionResolver实现类

ModelAndView类

SpringMVC的执行流程:

1.客户端通过url来发送请求

2.核心控制器Dispatcher Servlet接收到请求,通过系统或自定义的映射器配置找到对应的Handler,并将url映射的控制器Controller返回给核心控制器。

3.通过核心控制器找到系统或默认的适配器。

4.由找到的适配器,调用实现对应接口的处理器,并将结果返回给适配器,结果中包含数据模型和视图对象,再由适配器返回给核心控制器

5.核心控制器将获取的数据和视频结合的对象传递给视图解析器,获取解析得到的结果,并且由视图解析器响应给核心控制器

6.核心控制器将结果返回解析给客户端。

对于执行流程中的映射器,视图解析器的作用:映射器负责将前端请求的url映射到配置的处理器,视图解析器将最终的结果进行解析,但是中间会经过一层适配器,因为SpringMVC为业务处理器提供了多种接口实现(实现了Controller接口),而适配器就是用根据处理器实现了什么接口,最终选择与已经注册好的不同类型的Handler Adapter进行匹配,并最终执行。

猜你喜欢

转载自blog.csdn.net/qq_40223688/article/details/87906533