1、外文翻译Spring的webMVC构架模式翻译文稿、Spig的web VC构架模式Jurge Hoeler。介绍:pring 应用构架 当你第一次看到Spring的时候,你一定会说:哦不,又一种web构架”.这篇文章将告诉你Sprin明显区别于其他轻量级appiation famewrk, 它将专注于web的支持,与su和wbwork有着明显的区别。 在和sruts 和 webwor的对比上,Sri是一个服务于所有层面的apion framewrk:提供了en的配置基础,AP的支持,JDB的提取框架,抽象事务支持,等等。它有一个非常显著的特点:在某个层面上如果你不需要Sprig的支持,你就可以
2、不使用Srin的lass,只使用它的某一部分的功能。从它的设计理念,你可以看到Srin 帮助你实现了真正的逻辑层和web层的分离:例如.一个校验应用将不用依靠conroll,就可以实现这样的目标是 更好的重用和易测:过分依靠不必要的容器和框架将不能实现这一点。当然,Sprg 的自己的w支持和通常框架模式的细致完整。然而,Spring替换suts,wbwrk或者其他的we方案非常的容易。对于Sing的eb支持或者不同的地方,ping允许你在wb容器里面建立一个中间层,在测试环境或者标准独立的应用里面来设置重用你的商务逻辑.还有在2EE环境里面,你的商务逻辑不必依靠容器提供的服务,像A ,E的支持
3、.良好的构架的we应用可以运行在任何容器上,如,Tomca 或者 Rsin. 值得注意的是,Spring 不是和已经存在的解决方案进行竞争。 我们鼓励结合标准的技术,如,ervlet, JSP, T, JDI, DBC, anJO, 和非常匹配的工具,如,Hierat, elocity, og4, and Cauch sianBura。这个框架的的设计思想是在你的应用需要改良的时候,你将会做一些技术的选择:例如,如果你需要分布式事务处理,你可能需要用rin的Jta raactionnager 来实现A服务或者,用DatSourceTnctioManagr or HiernaeTransatio
4、naagr 来实现美妙完美的单个数据库交换。2 ebMV:Spring e 框架的设计思想Spin 框架通过配置操作apping,展示rsolto,本地化和模版集成围绕着分派请求操作的sevle DischerServle设计的.缺省的操作是一个非常简单的控制接口,他只提供了MdAde handleRequest(rquest,rese)方法.这将用于一个应用的控制,但是,如果你想包含多个层次的控制,Absractonr, AbsractComandContole, MultiAciContoler, impleForControl, bstractWardFormContoller将帮助你完
5、成。应用控制将代表那些子系统。注意,你可以选择一个适当的基类:如果你没有web fo,你就不必用FormContoler。这就是和Struts最大的不同。 你可以通过命令或者fom对象来操作任何对象:这不需要接口工具或者一个基础类的驱动.Sprin的数据邦定是非常的灵活的举例来说,它描述了具有在应用范围内的校验错误的输入机制,但不是系统错误.所以在你的for对象里面你不必复制你的业务对象的string属性,只操作出错的子任务,或者适当地转换rng。换句话说,它通常可以很好的直接邦定你的业务对象。 这也是和struts围绕请求基础类ction和 ctinForm (每个actin操作类型)建立主
6、要的不同之一。 对比WeWork,Sping更多的区别在于对象角色:Sping支持控制器的感念,一个操作命令或者form对象,和得到数据传递给视图的模式.这个模式通常包含命令和form对象,但有时也包含任意的参考数据。换句话说,一个ebWk Action联合所有这些角色到一个单独的对象Weork允许你用已经存在的业务对象作为你form的一部分,但是只生成各自Action的 bea 属性最后,操作请求的Actin 实例在一个视图里面获得付值和fo pulation。 然而,参考数据也需要作为cin 的属性被模拟。 一个类里面有太多的角色是值得讨论的.关于视图:prig的视图方案非常的灵活。 一个
7、控制器执行可以通过rspnse返回MoeAView对象ull,就可以直接写到一个视图。在通常的状况下,一个MlAndView实例结合了 一个vi 和一个modelMp,包含了beanname和 通讯对象(像命令或者frm,参考数据等等)。 iw名称是非常高端的的配置,不是通过beanam, 一个proerte文件就是通过你自己的Viewesoler.这个抽象的model Map 允许你在视图层面完成提取,没有任何的争辩JP/Veocity或者其他,每一种都可以直接完整使用。这个md ap 还可以简单得得到适当的格式化数据的转换,像JS 请求属性或者Veocit 模版模式. 3集成:用Spi一个
8、不同w 框架 许多开发团队将为他们已有的项目或者新的项目已经获得的期限和工具进行投资.这里没有像Str那样大量的图书和工具,但是同样我们有大量的拥有ng开发技巧的开发人员。然而,如果你愿意生活在Strts的构架瑕疵中的话,他将是你在web层开发不错的选择.当然,其他应用也是一样。 如果你不想用Spring的web MVC ,但是想借用Sprin嫁接其他的解决方案,你可以非常简单地通过Spng 继承你自己的web框架。你可以非常简单地通过ContetLoadeLisenr 启动一个ping rt apition ontxt, 并且,通过Struts 或者WeWo 的action 利用Servet
9、Cotxt 属性(或者Sing 的helpe方法)存取它。值得注意的是, 这里没有任何的”plugins被调用,因此没有专门的集成:来自web层的视图,你可以简单的将Spr作为一个管理aplcation text 实例入口点的类库。 所有你注册be和Srig服务都可以在不需要Sng的web MVC的情况下都可以被你轻松掌握Spig 不是和Stus ,WbWor这些应用进行竞争,它将作为一个纯web框架应用于 很多领域,因为它不需要配置数据存储和事务操作.所以,你可以利用Sring提供的中间层和数据存储层来丰富你的应用,甚至,你想用JDBC或者Hibernate进行事务抽象。 4。特点核对列表如
10、果聚焦于web支持,Srng的一些显著特点是:清楚地角色分离:contler , valdato , omad obet,form obje, mode objc,和 DispacherServle , hndler mapg siew resoler, 等等强大而且直接的框架和作为JaaBeans的应用配置,包括简单的参照和应用内容,例如,从b控制器到业务对象和数据校验. 适应性,外挂:无论什么样的控制器你都需要得到代替Actn/ctinFm所做的每件事情的方案(简单,命令,om,范例,多重acion,或者定制一个)重用业务逻辑代码,不需要复制:你可以用已经有的业务逻辑对象作为命令或则for
11、m对象代替反射特定的AtionFm子类。 可订制的邦定和数据校验:作为应用级的输入机制的错误校验,固定日期和数字邦定,例如,通过手动检查和转换业务对象来替换单个的sring。 可订制的操作,可订制的视图方案:通过naevalue Map灵活的模型传送,用一个简单的方法从简单到复杂操作映射和视图方案策略。 本地定制和主题方案:Spring没有taglib,完全支持于JS,JSTL,不需要额外的连接就可以支持Veloit,等等.简单但是强大的ag libar避免了HTML产生的混乱,最大限度的灵活扩展了标记代码.翻译文稿2、一种基于ibernat和trus的J2EE应用开发策略本文分析了ibrna
12、e和Strts的机制,提出了一种基于Hiberae和Struts的2EE应用开发策略。在这种策略中,模型层用Hibernate实现,视图和控制器则用Strts框架实现。这样可大大降低代码的耦合性以及提高系统的开发效率。关键字Hbea,Stts,V,持久层 1 引言 随着av技术的逐渐成熟与完善,作为建立企业级应用的标准平台,J2E平台得到了长足的发展。借助于J2EE规范中包含的多项技术:EntrriseJavaBen(JB)、Jaa Servts(ervt)、aa Server Page(JSP)、JaMsae Service(JS)等,开发出了许多应用系统。但是,在传统2EE应用的开发过程中
13、也出现了一些问题:1)数据模型和逻辑模型之间的矛盾。目前使用的数据库基本上都是关系型数据库,而Ja本质上是一种面向对象的语言,对象在存储和读取时使用SQL和JC进行数据库操作,降低了编程的效率以及系统的可维护性;2)传统的2E应用多采用基于EJ的重量级框架,这种框架适合于开发大型企业应用,但是使用EJ容器进行开发和调试需要耗费大量时间。为了降低代码的耦合性,提高系统的开发效率,本文提出了一种基于Srus框架和Hbernae框架的JEE应用开发策略 数据持久层及Hibenate Hbernte是一个数据持久层框架,是一种实现对象和关系之间映射(/RMappin)的工具,它对DC进行了轻量级的对象
14、封装,使程序员可以使用对象编程思想来操作数据库。它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复机制。相对于使用JDC和SQL来操作数据库,使用Hibernae能大大的提高实现的效率.Hbernate框架用配置文件的形式来定义Java对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java对象之间的继承及包含等关系。通过使用HQL语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在Hiberna中有一个简单而直观的API,用于对数据库所表示的对象执行查询.要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉ibrat
15、e保存即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JD语句,从而使数据持久层得到了极大的简化。 3 用Struts实现MC架构VC(deViewontrolr)由TryeReensku提出,首先被应用在SallTalk80环境中,是许多交互和界面系统的构成基础根据界面设计可变性的需求,VC把交互系统的组成分解成模型、视图、控制器三部分. 模型(Moel)是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,独立于具体的界面表达和/O操作。视图(View)把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户.它从模型获得显示
16、信息,对于相同的信息可以有多个不同的显示形式或视图.控制器(Conrle)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图对应一个控制器。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化传播机制。 Strts框架最早是作为Apach
17、e Jakarta项目的组成部分问世运做,它继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展.Stuts框架很好的结合了Jsp,Java rlet,Jv Ba,Taglib等技术。在Stru中,承担MC中控制器角色的是Acionervet。AionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Srts的HTTP请求的入口点。它截取和 分发这些请求到相应的动作类(这些动作类都是cton类的子类).另外控制组件也负责用相应的请求参数填充ActnFom(Frmean),并传给动作类(Acioan)。动作类访问核心商业逻辑,即访问a Bean或调用EJ.最后动作
18、类把控制权传给后续的JSP文件,由JS文件生成视图。所有这些控制逻辑利用Stuts-config。l文件来配置.在Strts框架中,视图主要由JSP生成页面完成,Strts提供丰富的JSP标签库,这有利于分开表现逻辑和程序逻辑。模型以一个或多个Jav Ban的形式存在。在Stuts中,主要存在三种n,分别是:ti,ActinForm,EB或者Jvean。 Struts框架没有具体定义模型层的实现,在实际开发中,模型层通常是和业务逻辑紧密相连的,并且要对底层数据进行操作。下面介绍一种开发策略,将Hbern引入到Struts框架的模型层中,使用它来进行数据封装和映射,提供持久化的支持。 4运用Hi
19、bernae和truts开发JE应用以在J2EE应用中非常普遍的用户登录过程为例,来说明上述体系结构是如何具体运用的登录的流程非常清晰:用户从登录页面linjsp输入登录信息,系统对登录信息进行验证,如果正确则成功登录,否则提示相应错误信息。 在开发过程中,使用cipse做为开发环境,同时加载了对Strt及ierna提供更好的控制和支持的第三方插件MyEclipse,Web服务器使用omca,数据库选用了Ml。 首先对Hiberae进行配置,只需要对系统自动生成的benate。cfgxml进行修改,配置好数据库连接的各种参数以及定义数据映射文件。由于Hibrnae所带的连接池主要用于测试,性能
20、不是很好,可以通过JND将其修改为使用Tomcat的连接池.原文1(复印稿)eVC wth th S FrmeworkJrgenHoelr1。Introduc: Spr heAppicion Famework When fistofroed with the Sr Famwork, ne might e teped to hink: ”O o,nt yet another web fraework”. This icl wlouline why Sng isntparticua a we raewrkbuta gneric lgtweght appliciwo ith dcatd web su
21、pot, ndshow the rhcral difrencso trutand WebWoIn conrast to Strus or Wbrk, prngs appction framewok for all layers: It ffes a bean configuaton funaion,AOpport, JDCabsrcion framewor, atrct transacion suppot, e。 Itia ery nnntrusi effrt: our appcionlasdo notneto deed on any Sping clases not necesa,andou
22、an us everpar on ts own iy like o. Frm it verydign, the framwork encoragscln parato oftirs, mstmportnly wetier and busines li: e.。 the valiation famewdoes otdeend o eb controlle。 Mjor as ae reusabilt and tetablty:nnecssry containeror frmeork dependencies can beconidere aoidabe evls。Of coure,Spingson
23、 we suprt is nicely negrated th he famewoks general pattrns.Neerthless, rlacithe web ltonwith Stru,Wbork,o the like s easy. oh with Srngsweb spportr a diffrent on,Sp alows rbuilding a tue dedcated mdle er inthe w contaner, ith the option to rese excly the sam siess logic test evronment orstndalone a
24、ppains。 Anwhin 2E, your busins locll otunecesrily depend n contaier svices lk JTor E llowingcplex,welrchtected eb applationsto ru i asimle oainer lke omtor n。Not thatSprig oest generally aim t copete wih eistinsoltonsI ratr fosters seamessintegationwith staas lk Servlet,JP, JTA, NI, JDBC, andJDO,and
25、weluiedoslkeHiberne, Velocity,LogJ, ndauhos essan/Brla。Trawork isdeigndto growwih h need of your applicatons, in te ofthnology cho: Fr example, yu wil obabl use JTAiaSpinJtarascionManaer yu ned istribte transctions ut onl ten,as treare perfect repacments fr sgle datase, lik DaSourTranscionanaer rHib
26、ernateTcionnagr.。 eb MVC: h Degnof Spings Wb Frameok Sprgb famewrk is deigned around aispacheSeret that dispatches equst t hanlers, with cofirble hdr mapig, ie reoltn, and ocal an themresoluin。Tedefat hanler isa vy ime onrolle iteface,ju offin a ”olAnde handleReuet(rquest,resns)” metod. Thisca alred
27、 be usedforaplicti otrlers, but youwllrfer the clu iplemetaion hiearch, csit f AbsrtControllr, stractComndntrller, MultiionCorolle, SimplFormontoe, ActWzardFomCntrllApplit controler wil ypicalye ubclassofse Nt tt youc cosean appoprte bae class:If ou dohae fom,youdontned a FomConrlle。 Ts i a majo difference truts。oucn t objectascomand o formobject: heresn need toimlemnt an iterfce o dev fr aae lass。 Sprisdatandin is highly fleible,e.g. t tas ype ismatceas vdaion erort can e aluatd b te aplicon, ot a sytemerros o y nt need oupliateyur busis obects properias tins in you orm ojects, jst to be
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1