Spring MVC的流程及其优缺点

SpringMVC是一个MVC框架,springmvc的工作流程:
1.发送请求: 在浏览器输入请求路径,发送请求,前端控制器链接所有的请求.
2.获得处理器:核心控制器(DispatcherServlet)接收到请求,通过处理器,通过映射器(handlerMapping)获得对应的处理器(Handler)
3.执行处理器:通过处理器适配器(HandlerAdapter)执行处理器(Handler),并返回视图模型对象(ModelAndView)
4.解析视图:通过视图解析器(ViewResolver)解析ModelAndView中的视图,将逻辑视图解析成真正的视图.
5.渲染视图:将Model中的数据渲染到视图(View)中
6.响应结果

2.Spring MVC执行流程图Spring MVC的流程及其优缺点_第1张图片

Spring MVC的优点

1.清晰的角色划分:控制器(Controller)、验证器(Validator)、命令对象(Command obect)、表单对象(from object)、模型对象(model object)、Select分发器(DispatcherServlet)、处理器映射(handler mapping)、视图解析器(view resoler)等等.每一个角色都可以由一个专门的对象来实现.
2.强大而直接的配置方式:将框架类和应用程序类都能作为JavaBean配置,支持跨多个context的引用.
3.可适配、非入侵:可以根据不同的应用场景,选择合适的控制器子类,而不是一个单一的控制器继承
4.可重用的业务代码:可以使用现有的业务对象作为命令或者表单对象,而不需要去扩展某个特定框架的基类.
5.可定制的绑定和验证:比如讲类型不匹配作为应用级的验证错误,这可以保证错误的值.
6.可定制的handler mapping和view resolution: Sping提供从最简单的URL映射,到复杂的、专用的定制策略.与某些web MVC框架强制开发人员使用单一特定技术相比,Spring显得更加灵活.
7.灵活的model转换:在Spring web框架中,使用基于Map的键/值对来达到轻易的与各种视图技术集成.
8.可定制的本地化和主题解析:支持在JSP中可选择地使用Spring标签库、支持JSTL、支持Velocity(不需要额外的中间层)等等.
9.简单而强大的JSP标签库:支持包括诸如数据绑定和主题之类的许多功能.他提供在标记方面的最大灵活性.
10.JSP表单标签库:在Spring2.0中引入的表单标签库,使用在JSP编写表单更加容易.
11.Spring Bean的生命周期可以被限制在当前的HTTP Request或者HTTP Session.

Spring MVC的缺点

1.没有明确的定义
2.不适合小型,中等规模的应用程序
3.增加系统结构和实现的复杂性
4.视图与控制器间的过于紧密的连接
5.视图对模型数据的低效率访问
6.一般高级的界面工具或构造器不支持模式

参考:https://blog.csdn.net/bbj1030/article/details/103078886
参考:https://blog.csdn.net/roger_coderlife/article/details/87911694

你可能感兴趣的:(mvc,java)