MVC 思想 & SpringMVC 框架概念与特点
1. 什么叫MVC?
模型-视图-控制器(MVC)是⼀个众所周知的以设计界⾯应⽤程序为基础的设计思想。它主要通过分离模型、视 图及控制器在应⽤程序中的⻆⾊将业务逻辑从界⾯中解耦。通常,模型负责封装应⽤程序数据在视图层展⽰。视图 仅仅只是展⽰这些数据,不包含任何业务逻辑。控制器负责接收来⾃⽤⼾的请求,并调⽤后台服务(service或者 dao)来处理业务逻辑。处理后,后台业务层可能会返回了⼀些数据在视图层展⽰。控制器收集这些数据及准备模 型在视图层展⽰。MVC模式的核⼼思想是将业务逻辑从界⾯中分离出来,允许它们单独改变⽽不会相互影响
2. 常⻅MVC框架运⾏性能⽐较
Jsp+servlet > struts1 > spring mvc > struts2+freemarker > struts2,ognl,值栈。 开发效率上,基本正好相反。值得强调的是,spring mvc开发效率和struts2不相上下,但从⽬前来看,spring mvc 的流⾏度已远远超过struts2
3. Spring MVC是什么?
Spring MVC是Spring家族中的⼀个web成员,它是⼀种基于Java的实现了Web MVC设计思想的请求驱动类型的 轻量级Web框架,即使⽤了MVC架构模式的思想,将web层进⾏职责解耦,基于请求驱动指的就是使⽤请求-响应 模型,框架的⽬的就是帮助我们简化开发,Spring MVC也是要简化我们⽇常Web开发的。
Spring MVC是服务到⼯作者思想的实现。 前端控制器是DispatcherServlet;应⽤控制器拆为处理器映射器 (Handler Mapping)进⾏处理器管理和视图解析器(View Resolver)进⾏视图管理;⽀持本地化/国际化(Locale)解析 及⽂件上传等;提供了⾮常灵活的数据验证、格式化和数据绑定机制;提供了强⼤的约定⼤于配置(惯例优先原 则)的契约式编程⽀持
4. Spring MVC能帮我们做什么?
1. 让我们能⾮常简单的设计出⼲净的Web层;
2. 进⾏更简洁的Web层的开发;
3. 天⽣与Spring框架集成(如IOC容器、AOP等);
4. 提供强⼤的约定⼤于配置的契约式编程⽀持;
5. 能简单的进⾏Web层的单元测试;
6. ⽀持灵活的URL到⻚⾯控制器的映射;
7. ⾮常容易与其他视图技术集成,如jsp、Velocity、FreeMarker等等,因为模型数据不放在特定的API⾥,⽽ 是放在⼀个Model⾥(Map数据结构实现,因此很容易被其他框架使⽤);
8. ⾮常灵活的数据验证、格式化和数据绑定机制,能使⽤任何对象进⾏数据绑定,不必实现特定框架的API;
9. ⽀持灵活的本地化等解析;
10. 更加简单的异常处理;
11. 对静态资源的⽀持;
12. ⽀持Restful⻛格
SpringMVC 请求流程 & 环境搭建
1. Spring MVC 请求处理流程分析
Spring