您的位置:首页 > 编程语言 > Java开发

Spring MVC 介绍

2016-06-23 13:17 351 查看

1、Spring MVC简介

Spring web MVC框架是主要是围绕着DispatcherServlet这个类来设计的,DispatcherServlet用于分发请求给handlers(操作者),可配置的处理程序映射,页面解析,locale(也就是i18)与主题解析并且支持文件下载。默认的handler是基于@Controller与@RequestMapper注解,提供多种灵活的处理方法。在Spring3.0中加入了新特性,就是你可以使用@PathVariable注解在使用@Controller机制可以允许你创建RESTful Web站点和应用程序。

在Spring Web MVC您可以使用一些对象作为命令或form-backing对象,你不需要实现框架的特殊接口或者基本方法。Spring的对象绑定与是高度灵活的。例如,它对待类型不匹配验证错误,可以评估的应用程序程序,而不是系统错误。因此你不需要复制你的业务对象的属性一样简单,无类型字符串表单对象简单处理无效的提交,或将字符串转换。Spring MVC可以更好的,更直接的绑定你的业务对象。

Spring MVC的页面解析也是非常灵活的。Controller负责利用ModelMap这个对象来管理数据以及查找页面,而且它还能够直接写响应流完成整个请求。通过文件扩展名或Accept标头内容类型,通过bean names,properties文件,或者甚至实现自定义的ViewResolver可以实现视图名称解析高度可配置的(the V in MVC)。这个model(the M in MVC)是一个Map实现的,它允许完整的抽象视图技术。你可以直接集成基于模板的渲染技术,例如JSP,速度和Freemarker,或直接生成XML、JSON、Atom,和许多其他类型的内容。模型地图可以简单的是变成了一个适当的格式,比如JSP请求属性,Velocity模板模型。

2、Spring Web MVC的特性

Spring的web模块包含很多独一无二的web支持特性。

1. 明确分工,每个角色——控制器,验证器,命令对象,对象,模型对象,DispatcherServlet,处理程序映射视图解析器,等等 – 可以通过一个专门的对象实现。

2. 强大的和简单的配置框架和应用程序类javabean。这个配置在上下文功能包括简单的引用,比如web控制器业务对象和验证器。

3. 无入侵性,适应性和灵活性。你需要定义任何控制器方法签名,可能使用一个参数注释(如@RequestParam @RequestHeader、@PathVariable和更多)对于一个给定的场景。

4. 可重用的业务代码,不需要重复。使用现有的业务对象作为命令或表单对象而不是镜像他们扩展基类的一个特定的框架。

5. 定制绑定和验证。类型不匹配,应用程序级验证错误,使违规值,本地化的日期和号码绑定,等等,而不是String-only表单对象手工解析和转换为业务对象。

6. 可定制的处理程序映射和页面解析。处理程序映射和视图解析策略范围从简单的基于url的配置到复杂的专门解决策略。Spring是一个更灵活授权特定技术web MVC框架。

7. 灵活的模型转化。模型通过Map传递一个名称/值,容易与任何视图的集成技术。

8. 可定制的语言环境和主题解析,支持jsp有或没有Spring标记库,支持JSTL,支持Volocity而不需要额外的东西,等等。

9. 一个简单而强大的JSP标记库称为Spring标记库提供支持数据绑定等特性和主题。自定义标记允许最大的灵活性的标记代码。

10. 一个JSP标记库形式,在Spring 2.0中引入的,使写作形式在JSP页面更加容易。

11. bean的生命周期是当前HTTP请求或HTTP会话作用域。这不是一个特定功能的Spring MVC本身,而是WebApplicationContext Spring MVC使用的容器(s)。

3、可插入性的MVC实现

对一些项目不使用Spring MVC实现更可取。许多团队希望利用现有投资的技能和工具。大量的知识和经验存在Struts框架。如果你能忍受Struts架构的缺陷,它可以是一个可行的选择web层,这同样适用于网络系统和其他web MVC框架。如果你不想使用Spring的web MVC,但打算利用Spring提供其他解决方案,您可以将您所选择的web MVC框架集成在Spring很容易。只是启动一个Spring应用程序上下文根通过其ContextLoaderListener,和访问它通过其ServletContext属性(或Spring的各自的助手方法)在Struts或WebWork中的Action。没有“插件”,所以没有专门的集成是必要的。从web层的角度来看,您只需使用Spring库,与根应用程序上下文实例作为入口点。即使没有Spring的Web MVC,你注册的bean和Spring的服务可以像在你的指尖一样简单.Spring不与Struts或WebWork在这种情况下。它只是解决了许多领域,纯web MVC框架不从bean配置数据访问和事务处理。所以你可以丰富您的应用程序的Spring中间层和/或数据访问层,即使你只是想使用,例如,JDBC事务抽象或Hibernate.

原文地址:http://docs.spring.io/spring/docs/4.2.6.RELEASE/spring-framework-reference/htmlsingle/#mvc-introduction
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: