Spring4.3.8MVC中文文档-22.1-Introduction to Spring Web MVC framework-简介SpringMVC
来源:互联网 发布:网络侦探年糕兽进化 编辑:程序博客网 时间:2024/05/21 09:22
SpringMVC (Web model-view-controller ) 框架是围绕着一个 前置控制器(DispatcherServlet)
设计,它将请求分发给处理程序,具有可配置的处理程序映射(handler mappings), 视图解析( view resolution), 区域设置(locale), 时区(time zone)和主题版面解析(theme)以及上传文件.默认的处理程序是基于 @Controller(控制层)
和 @RequestMapping(请求映射)
注解, 提供广泛的灵活处理方法. 通过引入Spring3.0 , @Controller
机制还允许您通过 @PathVariable
注释和其他功能创建RESTful Web站点和应用程序.
"开放扩展…"是SpringMVC和Spring一个关键设计原则,通俗点说就是 "Open for extension(可拓展), closed for modification(不修改)" .
一些SpringMVC的核心类是被标识成 final
. 作为一个猿类(此猿非彼猿)你是无法去实现这些类去满足你自己的需求的. 这个可扩展,不可修改的原则是经过慎重考虑设计的.
有关这个原则的解释, 参考《深入浅出SpringMVC和WebFlow》
在springMVC框架中,你可以使用任何对象作为一个命令或者表单对象,你不用实现框架接口,Spring的数据绑定非常灵活,例如:它将类型不匹配视作一个程序能自我识别的验证错误, 而不是系统错误。因此,您不用将您的业务对象的属性复制成一个简单无类型的字符串,仅处理无效提交,或者正确转换字符串。 相反,通常最好直接绑定到您的业务对象。
Spring的视图解析是非常灵活的,一个controller通常负责准备一个具有数据的模型(model)Map,并且指定返回的视图名称。但是controller也可以直接写出一个响应流并完成(结束)这个请求。 视图名称的解析通过文件扩展或者accept表头内容类型协商进行高度配置,通过bean名称,属性文件或甚至自定义的ViewResolver实现。Model(MVC中的M)是一个Map接口,可以完全提取视图技术。 您可以直接与基于模板的渲染技术(如JSP,Velocity和Freemarker)集成,或直接生成XML,JSON,Atom和许多其他类型的内容。Model Map简单地转换成适当的格式,如JSP请求属性, Velocity模板模型。
22.1.1 SpringMVC特性
Spring Web Flow
SWF旨在成为管理web应用程序页面流的最佳解决方案,SWF集成了一些现有框架,像SpringMVC和JSF,同时也有Servlet和portlet环境。如果你有一个业务流程需要从对话模型而不是简单的request模型中受益,那SWF就是解决方案,SWF允许您将逻辑页面流作为在不同情况下的独立模块捕获,因此非常适合构建指导用户通过导航操作驱动业务流程的web应用模块。
Spring框架的Web模块包含许多独特的特性(吹牛模式开启):
1.低耦合
2. 把框架和应用程序类作为javaBean来进行强大直接的配置
3.你可以根据你的需要定义任何一个controller方法签名,可能会从给定方案中使用任何一个注解(例如@RequestHeader, @PathVariable等)
4.可复用的业务代码,杜绝重复造轮子
5.自定义的绑定和验证
6.自定义的处理器映射和视图解析
7.灵活的模型传输
8.自定义的本地设置,时区和主题解析,支持带有或不带有Spring标签库的JSP,支持JSTL,支持Velocity,无需额外的桥接等。
9.一个简单却强大的JSP标签库作为Spring标签库而总所周知,为数据绑定和主题等功能提供支持
10.在Spring 2.0中引入的JSP表单标签库,使得在JSP页面中的写入表单更容易
11.Bean的生命周期作用于当前的HTTP request或者HTTP Session.这并不是SpringMVC的自身特性,而是SpringMVC使用的WebApplicationContext容器的特性
22.1.2其它MVC实现的可插拔性
对于某些项目,使用非SpringMVC框架实现会更加完美。许多团队更喜欢对现有的技术和工具投入精力,例如JSF.如果你不想使用SPringMVC,但是打算使用Spring提供的其它解决方案,你可以将Spring框架非常容易的与MVC框架集成。你只需要通过ContextLoaderListener来启动Spring的底层application context*(一个容器。通过容器可以取相应bean的值属性等).
即使没有Spring的Web MVC,您的注册bean和Spring的服务也可以在您的指尖。 在这种情况下,Spring不会与其他Web框架竞争。 它简单地解决了纯Web MVC框架从bean配置到数据访问和事务处理的许多方面。 所以您可以使用Spring中间层和/或数据访问层来丰富您的应用程序,即使您只想使用JDBC或Hibernate的事务抽象。(此段纯Google)
- Spring4.3.8MVC中文文档-22.1-Introduction to Spring Web MVC framework-简介SpringMVC
- Spring 3 MVC – Introduction to Spring 3 MVC Framework
- Spring 3 MVC – Introduction to Spring 3 MVC Framework
- Spring 3 MVC – Introduction to Spring 3 MVC Framework
- SPRING 3 MVC FRAMEWORK INTRODUCTION
- Spring4.3.8MVC中文文档-22.2-The DispatcherServlet-前置控制器
- Spring4.3.8MVC中文文档-22.2-Implementing Controllers-实施控制器
- Spring Web MVC 简介
- (Spring文档翻译)Part V, the Web 17.1 Spring Web MVC framework介绍
- Tomcat + Spring-framework MVC配置简介
- Introduction to the spring framework(Spring框架简介)
- 跟开涛学SpringMVC(Web MVC简介)
- 第一章、SpringMVC学习-Web MVC简介
- 第一章 Web MVC简介 —— SpringMVC
- 第一章 Web MVC简介 —— SpringMVC
- 搭建Spring4+Spring MVC web工程的最佳实践
- Spring 框架参考文档(五)-The Web之Portlet MVC Framework
- Spring MVC中文文档翻译发布
- 自定义View Draw过程
- golang导包
- linux常见命令01
- 隐藏system窗口你也行
- replace 如何分别替换第一次匹配和所有匹配之后得到的字符串
- Spring4.3.8MVC中文文档-22.1-Introduction to Spring Web MVC framework-简介SpringMVC
- 随笔1
- java web从网页表单输入数据存储到MySQL数据库
- Ubuntu16.04下安装Tenda U1无线网卡驱动
- Android开发笔记(一百四十四)高仿支付宝的头部伸缩动画
- 还以为有戏?这种面试你就是个备胎!
- eclipse更换工作空间的准备
- (64)组件之控件组件
- 计蒜客 15504 百度的科学计算器(简单) 题解