深入spring mvc framework之总体分析(深入Spring MVC框架之总体分析).docVIP

深入spring mvc framework之总体分析(深入Spring MVC框架之总体分析).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入spring mvc framework之总体分析(深入Spring MVC框架之总体分析)

深入spring mvc framework之总体分析(深入Spring MVC框架之总体分析) 深入Spring MVC框架之总体分析 在当今的MVC框架里,似乎WebWork2逐渐成为主流,webwork2 + SpringFramework的组合变得越来越流行。这似乎意味着弹簧自带的MVC框架远比WebWork2差,所以大家纷纷用WebWork2来代替。确实,春天的MVC框架不算是整个弹簧的核心部件,但它的威力却超过了很多人的想象。很多人包括xiecc认为弹簧的MVC框架是非常优秀的,甚至比WebWork2更优秀。 下面列举一下弹簧的在设计时做出的一些重要的决定并将之和相关的MVC框架,MVC框架Struts进行对比如WebWork2或: 一、弹簧的整个MVC配置是基于奥委会容器的 与Struts或WebWork2相比,这是一个MS有点奇怪的决定,看一下Spring MVC的配置文件,最先看到的不是行动或者形式,而是一些有着特定名字的豆,豆下面的配置是一些简单或有点复杂的属性我们看到的是机器更容易的数据结构,而不是人更容易理解的元素。 但是这恰恰是弹簧的MVC强大的根源!因为它的配置就是弹簧的核心奥委会容器的配置,这意味着所有奥委会容器的威力都可以在这里展现,我们可以为所欲为地对Spring MVC进行扩展和增强,我们可以完成在其它MVC框架中很多难以想象的任务。想扩展新的URL映射方式吗?要换一个themeresolver或localreolver的实现吗?想在页面中显示新类型的视图(比如说RDF,呵呵,一个小秘密:xiecc是研究语义网的,虽然成天不务正业,不写论文,只写八卦)?甚至想直接在控制器里定义AOP吗?这些对弹簧的MVC来说都是小菜一碟。 我没有仔细研究过WebWork2的扩展机制,我知道通过WebWork2的拦截机制,可以进行很多的扩展,甚至有一个简单简单的奥委会容器。但不管它有多强大,提供了多少扩展点。它的威力都很难和真正的奥委会容器相比。而Struts的功能则是出名的滥虽然它也提供了插件,插件机制。 春天采用奥委会配置的另一个原因是使弹簧的MVC与弹簧的奥委会容器的整合变得非常的容易。春天提供了与Struts与WebWork2的整合,但是这样整合都需要在进行间接的包装,感觉总不是很自然。而且还会导致一个概念多个配置,webwork2就需要在弹簧里配置豆,再配置自己的XWork文件。想象一下吧,我们的豆直接就是一个控制器,直接可以完成MVC的所有任务,这是多少爽的感觉。 Rod Johnson采用奥委会容器来实现的另一个原因是这会减少好多开发工作量。看一下urlmapping吧,它提供的财产本身就是一个HashMap,只有配置完成,我们的豆里的数据就自然存在了,哈哈,好爽吧。不用象Struts那样解析XML,再把它的内容一项一项地读到HashMap里。 虽然这样的配置会有点怪异,但假如我们对弹簧的奥委会容器非常熟悉的话,会发现它非常的亲切,也非常的简单。 最后是一个简单的小秘密,春天怎么知道某个豆的配置就是urlmapping?另一个的配置就是ViewResolver豆?其实很简单,把所有的豆全部读到内存里,然后通过豆的名字或类型去找就行了。通过名字去找就是简单的getBean方法,通过类型去找则使用了beanfactoryutils beansoftypeincludingancestors的静态方法。 二、弹簧提供了明确的模型、视图概念和相应的数据结构 在弹簧里有一个有趣的数据类型叫做ModelAndView,它只是简单地把要显示的数据和显示的结果封装在一个类里。但是它却提供了明确的MVC概念,尤其是模型概念的强化,使程序的逻辑变得更清晰了。 记得以前在Struts里写程序里的时候,为了显示数据经常自己把东西放到HttpSession或HttpServletRequest里(或集到形式里,虽然不太有用),这造成了模型概念的模糊, It also leads to tight coupling between struts and JSP pages. If we want to replace Veloctiy, we have to add another plugin, because in velocity, the data does not need to be left in the request. Webwork2 emphasizes the simplicity of decoupling with Web framework and its command schema, so there is only a simple get or set method in its ac

您可能关注的文档

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档