版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一种基于Hibernate、Struts和Spring的J2EE应用开发框架随着Java技术的逐渐成熟与完善,作为建立企业级应用的标准平台,J2EE平台得到了长足的发展。借助于J2EE规范中包含的多项技术:EnterpriseJavaBean(EJB)、JavaServlets(Servlet)、JavaServerPages(JSP)、JavaMessageService(JMS)等,开发出了许多应用系统。但是,在传统J2EE应用的开发过程中也出现了一些问题:(1)数据模型和逻辑模型之间的矛盾。目前使用的数据库基本上都是关系型数据库,而Java本质上是一种面向对象的语言,对象在存储和读取时使
2、用SQ和JDB(进行数据库操作,降低了编程的效率以及系统的可维护性;(2)传统的J2EE应用多采用基于EJB的重量级框架,这种框架适合于开发大型企业应用,但是使用EJB容器进行开发和调试需要耗费大量时间。为了降低代码的耦合性,提高系统的开发效率,本文提出了一种基于Struts框架、Hibernate框架和Spring框架的J2EE应用开发策略。Hibernate框架Hibernate是一个数据持久层框架,是一种实现对象和关系之间映射(O/RMapping)的工具,它对JDB(进行了轻量级的对象圭寸装,使程序员可以使用对象编程思想来操作数据库。它不仅提供了从Java类到数据表的映射,也提供了数据
3、查询和恢复机制。相对于使用JDBCSS座操作数据库,使用Hibernate能大大的提高实现的效率。Hibernate框架用配置文件的形式来定义Java对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java对象之间的继承及包含等关系。通过使用HQ语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉Hibernate保存即可。这样,大量圭装持久化操作的业务逻辑不再需要编写烦琐的JDB(语句,从而使数据持
4、久层得到了极大的简化。用Struts实现MV架构MVC(Model-View-Controller)由TrygveReenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。根据界面设计可变性的需求,MV把交互系统的组成分解成模型、视图、控制器三部分。模型(Model)是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,独立于具体的界面表达和I/O操作。视图(View)把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。控制器
5、(Controller)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图对应一个控制器。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。Struts框架Struts框架最早是作为ApacheJakarta项目的组成部分问
6、世运做,它继承了MV(的各项特t并根据J2EE勺特点,做了相应的变化与扩展。Struts框架很好的结合了Jsp,JavaServlet,JavaBean,Taglib等技术。在Struts中,承担MVC中控制器角色的是ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP#:的入口点,它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充ActionForm(FromBear),并传给动作类(ActionBean)。动作类访问核心商业逻辑,即访问JavaBear
7、或调用EJB最后动作类把控制权传给后续的JSP文件,由JSP文件生成视图。所有这些控制逻辑利用Struts-corfig.xml文件来配置。在Struts框架中,视图主要由JSF生成页面完成,Struts提供丰富的JSP标签库,这有利于分开表现逻辑和程序逻辑。模型以一个或多个JavaBear的形式存在。在Struts中,主要存在三种Bear,分别是:Actior,ActiorForm,EJB或者JavaBearoStruts框架没有具体定义模型层的实现,在实际开发中,模型层通常是和业务逻辑紧密相连的,并且要对底层数据进行操作。Hibernate引入到Struts框架的模型层中,使用它来进行数据
8、封装和映射,提供持久化的支持。Spring框架Spring明显区别于其他轻量级applicationframework,它将专注于web的支持,与struts和webwork有着明显的区别。在与struts、webwork的对比上,Spring是一个服务于所有层面的即plicationframework:提供了bean的配置基础,AOPtJ支持,JDBC勺提取框架,抽象事务支持等等。它有一个非常显著的特点:在某个层面上如果你不需要Spring的支持,你就可以不使用Spring的class,只使用它的某一部分的功能。从它的设计理念,你可以看到Spring帮助你实现了真正的逻辑层和web层的分离。
9、例如:一个校验应用将不用依靠controllers就可以实现。这样的目标更好的重用和易测,过分依靠不必要的容器和框架将不能实现这一点。当然,Spring有自己的web支持和通常框架模式细致完整。然而,Spring替换struts、webwork或者其他的web方案非常容易。对于Spring的web支持或者不同的地方,Spring允许你在web容器里面建立一个中间层,在测试环境或者标准独立的应用里面来设置重用你的商务逻辑?还有在J2EE环境里面,你的商务逻辑不必依靠容器提供的服务,像JTA,EJB的支持。良好的构架的web应用可以运行在任何容器上,如,Tomcat或者Resin。值得注意的是,S
10、pring不是和已经存在的解决方案进行竞争.我们鼓励结合标准的技术,如,Servlet,JSP,JTA,JNDI,JDBCandJDO和非常匹配的工具,如,Hibernate,Velocity,Log4J,andCauchosHessian/Burlap。这个框架的的设计思想是在你的应用需要改良的时候,你将会做一些技术的选择,例如,如果你需要分布式事务处理,你可能需要用Spring的JtaTransactionManager来实现JTA服务。或者用DataSourceTransactionManagerorHibernateTransactionManager来实现的单个数据库交换。Sprin
11、g框架通过配置操作mappings,展示resolution,本地化和模版集成围绕着分派请求操作的servlet-DispatcherServlet设计的。缺省的操作是一个非常简单的控制接口,他只提供了ModelAndViewhandleRequest(request,response)方法。这将用于一个应用的控制,但是,如果你想包含多个层次的控制,AbstractController,AbstractCommandController,MultiActionController,SimpleFormController,AbstractWizardFormController将帮助你完成.应
12、用控制将代表那些子系统。注意,你可以选择一个适当的基类:如果你没有webform,你就不必用FormController,这就是和Struts最大的不同。你可以通过命令或者form对象来操作任何对象,这不需要接口工具或者一个基础类的驱动。Spring的数据绑定非常灵活。举例来说,它描述了具有在应用范围内的校验错误的输入机制,但不是系统错误,所以在你的form对象里面你不必复制你的业务对象的spring属性,只操作出错的子任务,或者适当地转换spring。换句话说,它通常可以很好的直接绑定你的业务对象。这也是和struts围绕请求基础类Action和ActionForm(每个action操作类型
13、)建立主要的不同之一。对比WebWork,Sping更多的区别在于对象角色:Spring支持控制器的感念,一个操作命令或者form对象和得到数据传递给视图的模式,这个模式通常包含命令和form对象,但有时也包含任意的参考数据。换句话说,一个WebWorkAction联合所有这些角色到一个单独的对象。WebWorl允许你用已经存在的业务对象作为你form的一部分)但是只生成各自Action的bean属性。最后,操作请求的Action实例在一个视图里面获得付值和formpopulation。然而,参考数据也需要作为Action的属性被模拟。关于视图:Spring的视图方案非常的灵活。一个控制器执行
14、可以通过response返回ModelAndView对象null就可以直接写到一个视图里,在一般情况下)一个ModelAndView实例结合了一个view和一个modelMap,包含了beanname和通讯对象(像命令或者form,参考数据等等)。View名称是非常高端的配置,不是通过beanname,个properties文件就是通过你自己的ViewResolver.这个抽象的modelMap允许你在视图层面完成提取,没有任何的争辩JSP/Velocity或者其他,每一种都可以直接完整使用.这个modelMap还可以简单得得到适当的格式化数据的转换,像JSP请求属性或者Velocity模版模
15、式.如果你不想用Spring的webMVC且是想借用Spring嫁接其他的解决方案,你可以非常简单地通过Spring继承你自己的web框架,你可以非常简单地通过ContextLoaderListener启动一个Springrootapplicationcontext,并且,通过Struts或者WebWork的action利用ServletContext属性(或者Spring的helper方法)存取它。值得注意的是,这里没有任何的plugins被调用,因此没有专门的集成:来自web层的视图,你可以简单的将Spring作为一个管理即plicationcontext实例入口点的类库。所有你注册bea
16、n和Spring服务都可以在不需要Spring的webMVCl情况下都可以轻松掌握。Spring不是和Struts、WebWo这些应用进行竞争,它将作为一个纯web框架应用于很多领域,因为它不需要配置数据存储和事务操作,所以,你可以利用Spring提供的中间层和数据存储层来丰富你的应用,甚至用JDBC者Hibernate进行事务抽象。如果仅仅聚焦于web支持,Spring的一些显著特点是清楚分离:controller,validator,commandobject,formobject,modelobject,和DispatcherServlet,handlermappingvsviewres
17、olver等等强大而且直接的框架和作为JavaBeans的应用配置,包括简单的参照和应用内容,例如,从web控制器到业务对象和数据校验。适应性,无论什么样的控制器你都需要得到代替Action/ActionForm所做的每件事情的方案(简单,命令,form,范例,多重action,或者定制一个)重用业务逻辑代码,不需要复制,你可以用已经有的业务逻辑对象作为命令或则form对象代替反射特定的ActionForm子类。可订制的绑定和数据校验作为应用级的输入机制的错误校验,固定日期和数字绑定,例如,通过手动检查和转换业务对象来替换单个的string。可订制的操作,可订制的视图方案:通过name/val
18、ueMap灵活的模型传送,用一个简单的方法从简单到复杂操作映射和视图方案策略。以在J2EE应用中非常普遍的用户登录过程为例来说明上述体系结构是如何具体运用的。登录的流程非常清晰:用户从登录页面login.jsp输入登录信息,系统对登录信息进行验证,如果正确则成功登录,否则提示相应错误信息。在开发过程中,使用Eclipse做为开发环境,同时加载了对Struts、Spring及Hibernate提供更好的控制和支持的第三方插件MyEclipse,Web艮务器使用Tomcat,数据库选用了Mysql。首先对Hibernate进行配置,只需要对系统自动生成的hibernate.cfg.xml进行修改,
19、配置好数据库连接的各种参数以及定义数据映射文件。由于Hibernate所带的连接池主要用于测试,性能不是很好,可以通过JNDI将其修改为使用Tomcat的连接池。ADevelopmentFrameApplicationBasedontheHibernate、theStrutsandtheSpringJ2EEOneprefacealongwiththeJavatechniqueofgradualmatureandperfect.Beestablishmentbusinessenterpriseclassapplicationofstandardterrace,theJ2EEterracegots
20、ubstantialofdevelopment.SeveraltechniqueaskedforhelpfromtoincludeintheJ2EEnorm:EnterpriseJavaBean(EJB),JavaServlets(Servlet),JavaServerPages(JSP),JavaMessageService(JMS)etc.,developmentmanyapplicationsystem.But,alsoappearedsomeprobleminthetraditionJ2theEEtheapplicationofthedevelopmenttheprocess:1)th
21、eantinomyofofdatamodelandlogicmodel.Currentlythedatabaseofusagebasicallyandallisrelationtypedatabase,buttheJavabeessentiallyakindofthelanguagewhichfacetoobject,objectatsavingwithreadusageSQLandJDBCcarryonadatabaseoperationandloweredplaitdistanceofefficiencyandsystemofcanmaintenance;2)traditionofJ2EE
22、applicationmuchtheadoptionisaccordingtotheEJBheavyweightframe,thiskindofframesuitablefordevelopalargebusinessenterpriseapplication,butusagetheEJBcontainercarryondevelopmentandadjusttotrytoneedtobewasteagreatdealoftime.ForloweringtheOuofcodetomatchsex,exaltationsystemofdevelopmentefficiency,thistextp
23、utforwardonekindEEaccordingtotheJ2oftheStrutsframe、theHibernateframeandtheSpringframeapplicationdevelopmentstrategy.TheHibernateFrameDatasholdingoutforlongtimelayerandHibernateisonepieceaccordingtoholdoutforlongtimelayerframe,isakindofrealizationobjectandrelationofthetoolwhichreflecttoshoot(O/RMappi
24、ng),itcarriedontheobjectofthelightweighttopacktotheJDBCandmakeproceduremembercanusageobjectplaitdistancethoughttooperationdatabase.ItnotonlyprovidedtoshootfromJavatoreflectofdataform,butalsoprovidedadataasearchandinstaurationmechanism.OppositeinusageJDBCandSQLtooperationdatabase,useHibernateabilityc
25、onsumedlyofexaltationrealizationofefficiency.TheHibernateframeuseallocationdocumentoftheformcometothereflectofthedefinitionJavaobjectanddataformtoshootrelation,inthemeantimeatmoredeepoflevelofdataformofrelationexplanationfortherelationssuchasinheritofandcontainmentetc.ofJavaobject.PasstheusageHQLlan
26、guagesentencecomplicationsofrelationthecalculatewayusethewayofobjectdescription,toalargeextentsimplificationlogarithmsaccordingtoofsearch,speeddevelopmentofefficiency.HaveintheHibernateasimplebutkeeptheAPIofview,usedfortothedatabasemeanofobjectperformancesearch.Wanttoestablishorthemodificationbethes
27、eobjects,needintheprocedurecarryonwiththemtohandoverwitheachother,thentellHibernatetokeep.So,agreatdealofpackholdoutforlongtimeturnoperationofbusinesslogicnolongerdemandwriteatrivialJDBClanguagesentence,makedatalastlongthusthelayergotbiggestofsimplification.UsetheStrutsrealizationMVCstructureMVC(Mod
28、el-View-Controller)isputforwardbytheTrygveReenskaug,firstdriveapplicationintheenvironmentSmallTalk-80,ismanytohandoverwitheachotherwithinterfacesystemofconstitutefoundation.Accordingtotheneedofvariableoftheinterfacedesign,MVChandoverwitheachotherconstituteofsystemtoresolveintomodelandseediagram,cont
29、rollerthreepart.Model(Model)issoftwareprocessingproblemlogicatindependenceinoutsidemanifestationundercontentsandformcircumstanceofinsideabstract,packedthecoredata,logicofproblemandfunctionofcalculationrelation,independenceinconcreteofinterfaceexpressionandI/Ooperation.Seediagram(View)meaninformation
30、andparticularformdemonstrationofmodeldataandlogicrelationandappearancetothecustomer.Itacquireamanifestationinformationfromthemodel,therecanbemanyforhomologyofinformationdissimilarityofmanifestationformorseediagram.Thecontroller(Controller)isaprocessingthecustomerhandoverwithsoftwarewitheachotheroper
31、ationof,itsjobiscontrolprovidemodelinanyvarietyofdissemination,insureacustomerinterfaceamongthemodelofrightnessshouldcontact;Itacceptacustomerofimportation,givetheimportationfeedbackmodel,thenrealizationcomputemodelcontrol,ismakemodelandseediagramtomoderateworkofparts.Usually1seeadiagramrightnesssho
32、uldacontroller.Model,seeseparateofdiagramandcontroller,makeamodelbeabletohavemanymanifestationtoseediagram.Ifthecustomerpassacertainseethecontrollerofdiagramchangethedataofmodel,allotherdependenceintheseseeofdatadiagramallshouldreflectionarrivethesevariety.Whenthereforeandregardlessoccurrencewhatdat
33、avariety,controllerallwouldvarietynoticeallyseediagram,causemanifestationofrenewal.Thisisactuallyakindofvarietyofmodel-disseminationmechanism.TheStrutsFrameTheStrutsframeistobetheitemofApacheJakartatoconstituteparttopublishlucktodoattheearlieststage,itinheritedMVCofeachitemcharacteristic,anddidaccor
34、dingtothecharacteristicsofJ2EEcorrespondofvarietywithexpand.TheStrutsframewasgoodtocombineJsp,JavaServlet,JavaBean,Taliaetc.technique.IntheStruts,whattoundertakethecontrollerroleintheMVCbeanActionServlet.TheActionServletisaningeneralusecontrolmodule.ThiscontrolmoduleprovidedaprocessingallHTTPclaimwh
35、ichsendoutStrutsofentrancepoint.Itsinterceptionwithdistributetheseclaimtoarrivecorrespondofactiontype.(theseactionalloftypeisActionsontype)MoreoverthecontrolmoduleisalsoresponsibleforusingtocorrespondofclaimtheparameterfillActionForm(FromBean),andpassactiontype(ActionBean).Actiontypethebusinesslogic
36、oftheinterviewcore,theninterviewJavaBeanoradjusttouseEJB.Endactiontypecontrolthepowerpassfollow-upofJSPdocument,fromJSPdocumentbornseediagram.AllthesecontrollogicmakeuseofStruts-config.xmlthedocumentcometoallocation.SeediagramintheStrutsframemainfromJSPbornpagecompletion,theStrutsprovideabundantofJS
37、Plabeldatabase,thisisadvantageoustoseparatingperformancelogicandprocedurelogic.Themodeliswith1ortheformexistenceofseveralJavaBean.IntheStruts,mainexistencethreekindsofBean,respectivelyBE:Action,ActionForm,EJBperhapsJavaBean.TheStrutsframehavenoconcretedefinitionmodellayerofrealization,inactuallythed
38、evelopment,modellayerusuallyisclosewithbusinesslogicconnectwitheachother,andwanttocarryonoperationtothefirstfloordata.Theunderneathsintroductionisakindofdevelopmentstrategy,leadtheHibernateintothemodellayerofStrutsframe,usageittocarryonadatatopackwithreflecttoshoot,provideholdoutforlongtimeturnofsup
39、port.4usageHibernateandtheStrutsdevelopmentJ2EEapplication4.1systemstructurediagram3manifestationaccordingtoHibernateandStrutsdevelopmentstrategyofsystemstructurediagram.theSpringFrameSpringisntparticularlyawebframeworkbutagenericlightweightapplicationframeworkwithdedicatedwebsupport,andshowthearchi
40、tecturaldifferencestoStrutsandWebWorkIncontrasttoStrutsorWebWork,Springisanapplicationframeworkforalllayers:Itoffersabeanconfigurationfoundation,AOPsupport,JDBCabstractionframework,abstracttransactionsupportetc.Itisaverynon-intrusiveeffort:YourapplicationclassesdonotneedtodependonanySpringclassesifnotnecessary,andyoucanreuseeverypartonitsownifyouliketo.Fromitsverydesign,theframeworkencouragescleanseparationoftiers,mostimportantlywebtierandbusinesslogic.e.g:thevalidationframeworkdoesnotdependonwebcontrollers.Majorgoalsarereusabilityandtestabil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区医生培训
- 交通事故协商赔偿协议书3篇
- 神内科护理疑难病例
- 端午节音乐活动教案
- 河南科技大学《日语中级听力》2021-2022学年第一学期期末试卷
- 2024版工程建筑外架施工安全合同2篇
- 花家湖学校年度办公用品购货合同
- 2024年装载机买卖合同技术更新服务合同2篇
- 女方哺乳期2024年离婚协议书参考
- 《抗菌药物合理运用》课件
- 国投集团笔试测评题
- (高清版)DZT 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼
- 2023年凉山州木里藏族自治县考试招聘事业单位工作人员考试真题及答案
- 六西格玛项目定义
- 职业生涯规划主题班会1
- 【川教版】《生态 生命 安全》四年级上册第10课《认识传染病》课件
- DB35T 2061-2022 村庄规划编制规程
- 创新实践组织创新成功的案例分享
- 谈谈改革开放四十多年我的家乡的变化
- 2024年上海中考语文记叙文阅读专题一写人记事散文(原卷版 +解析版)
- 监理工作中变更管理的规范与应对措施
评论
0/150
提交评论