Java高级框架应用开发案例教程(一)_第1页
Java高级框架应用开发案例教程(一)_第2页
Java高级框架应用开发案例教程(一)_第3页
Java高级框架应用开发案例教程(一)_第4页
Java高级框架应用开发案例教程(一)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java高级框架应用开发案例教程(一)

Struts-Spring-Hibernate概述

主要内容1.1框架概述1.2Struts、Spring和Hibernate概述1.3开发工具与配置1.1框架概述在介绍软件框架(Framework)之前,我们首先要明确什么是框架和为什么要使用框架。这要从企业面临的挑战谈起。如图1-1所示:1.1框架概述可以看到,随着工程的规模和复杂性的提高,企业面临前所未有的各个方面的挑战。根据优先级排序,主要包括高可靠性〔HighAvailability〕,低本钱〔CostEffective〕,可扩展性〔Scalability〕,投放市场快速性〔TimetoMarket〕,平安性〔Secure〕,性能〔GoodPerformance〕,可集成性〔Abilitytointegrate〕,以及多平台支持〔Multi-channel〕等。那么,我们如何面对并且解决这些挑战呢?这需要采用通用的、灵活的、开放的、可扩展的软件框架,由框架来帮助我们解决这些挑战,之后再在框架根底之上开发具体的应用系统。如图1-2所示:这种基于框架的软件开发方式和传统的汽车生产方式是很类似的,如图1-3所示:1.1框架概述那么到底什么是软件框架呢?框架(Framework)的定义如下:是应用系统的骨架,将软件开发中反复出现的任务标准化,以可重用的形式提供使用大多提供了可执行的具体程序代码,支持迅速地开发出可执行的应用;但也可以是抽象的设计框架,帮助开发出健壮的设计模型好的抽象、设计成功的框架,能够大大缩短应用系统开发的周期在预制框架上参加定制的构件,可以大量减少编码量,并容易测试分别用于垂直和水平应用1.1框架概述框架具有以下特点:框架具有很强〔大粒度〕的可重用性,远远超过了单个类;它是一个功能连贯的类集合,通过相互协作为应用系统提供效劳和预制行为框架中的不变局部,定义了接口、对象的交互和其他不变量框架中的变化局部〔应用中的个性〕一个好的框架定义了开发和集成组件的标准。为了利用、定制或扩展框架效劳,通常需要框架的使用者从已有框架类继承相应的子类;以及通过执行子类的重载方法,用户定义的类将会从预定义的框架类获得需要的消息。这会给我们带来很多好处,包括代码重用性和一致性,对变化的适应性,特别是它能够让开发人员专注于业务逻辑,从而大大减少了开发时间。如图1-4所示对有没有使用框架对工程开发所需工作量〔以人*月来衡量〕的影响进行了比照。1.1框架概述从图中我们不难看出,对于没有使用框架的工程而言,开发所需工作量〔以Mandays,即人*月来衡量〕会随着工程复杂性的提高〔以Businessfunction,即业务功能来衡量〕以几何级数递增,而对于使用框架的工程而言,开发所需工作量会随着工程复杂性的提高以代数级数递增。举个例子,假定开发团队人数一样,一个没有使用框架的工程所需的周期为6-9个月的话,那么同样的工程如果使用框架那么只需要3-5个月。1.1框架概述在软件架构设计中,我们往往建立软件系统的高层结构,常常用到分层架构模式。分层模式是一种将系统的行为或功能以层为首要的组织单位来进行分配〔划分〕的结构模式:—通常在逻辑上进行垂直的层次Layer划分—在物理上创造那么进行水平的层级Tier划分分层要求:层内的元素只信赖于当前层和之下的相邻层中的其它元素(注意这并非绝对的要求)大局部的Web应用在职责上至少能被分成4层:表示层〔PresentationLayer〕、持久层〔PersistenceLayer〕、业务层〔BusinessLayser〕和域模块层〔domainmodelLayer〕。每个层在功能上都应该是十清楚确的,而不应该与其他层混合。每个层要相互独立,通过一个通信接口而相互联系。下面将分别详细地介绍这四层,讨论一下这些层应该提供什么,不应该提供什么。1.2Struts、Spring和Hibernate概述这里讨论一个使用三种开源框架的策略:表示层用Struts;业务层我们用Spring;而持久层那么用Hibernate。如图1-5所示。1.2Struts、Spring和Hibernate概述1.2.1表示层一般来讲,一个典型的Web应用的前端应该是表示层。这里可以使用Struts框架。下面是Struts所负责的:管理用户的请求,做出相应的响应提供一个流程控制器,委派调用业务逻辑和其他上层处理处理异常为显示提供一个数据模型用户界面的验证以下内容,不该在Struts表示层的编码中经常出现,与表示层无关的。与数据库直接通信与应用程序相关联的业务逻辑及校验事务处理在表示层引入这些代码,那么会带来高耦合和难以维护的后果。1.2Struts、Spring和Hibernate概述1.2.2持久层典型的Web应用的后端是持久层。开发者总是低估构建他们自己的持久层框架的挑战性。系统内部的持久层不但需要大量调试时间,而且还经常因为缺少功能使之变得难以控制。这是持久层的通病。幸运地是,有几个对象/关系映射〔Object/RelationMapping,ORM〕开源框架很好地解决了这类问题,尤其是Hibernate。Hibernate为Java提供了持久化机制和查询效劳,它还给已经熟悉SQL和JDBCAPI的Java开发者创造了一个学习桥梁,使他们学习起来很方便。Hibernate的持久对象是基于POJO〔PlainOldJavaObject〕和Java集合〔collections〕的。此外,使用Hibernate并不阻碍你正在使用的IDE〔IntegratedDevelopmentEnviroment〕。1.2Struts、Spring和Hibernate概述下面是Hibernate所负责的:如何查询对象的相关信息。Hibernate是通过一个面向对象的查询语言〔HQL〕或者正那么表达的API来完成查询的。HQL非常类似于SQL,只是把SQL里的table和columns用Object和它的fields代替。HQL语言容易理解且文档也做得很好。HQL是一种面向对象查询的自然语言,很容易就能学会它。如何存储、更新、删除数据库记录。如Hibernate这类的高级ORM框架支持大局部主流数据库,并且支持父表/子表〔Parent/child〕关系、事务处理、继承和多态。1.2Struts、Spring和Hibernate概述1.2.3业务层一个典型Web应用的中间局部是业务层或者效劳层。从编码的视角来看,这层是最容易被无视的一层。我们往往在用户界面层或持久层周围看到这些业务处理的代码,这其实是不正确的。因为它会造成程序代码的高耦合,这样一来,随着时间推移,这些代码将很难维护。幸好,针对这一问题有好几种框架〔Framework〕存在。最受欢送的两个框架是Spring和PicoContainer。这些也被称为轻量级容器〔microcontainer〕,它们能让你很好地把对象搭配起来。这两个框架都着手于“依赖注射〞〔dependencyinjection〕〔还有我们知道的‘控制反转’InversionofControl=IoC〕这样的简单概念。这里我们将关注于Spring的依赖注射和面向方面编程。另外,Spring把程序中所涉及到的包含业务逻辑和数据存取对象〔DataAccessObject〕的Objects——例如transactionmanagementhandler〔事务管理控制〕、ObjectFactoris〔对象工厂〕、serviceobjects〔效劳组件〕——都通过XML来配置联系起来。1.2Struts、Spring和Hibernate概述后面我们会通过工程和实例来揭示一下Spring是怎样运用这些概念的。下面是业务层所负责的:处理应用程序的业务逻辑和业务校验管理事务提供与其他层相互作用的接口管理业务层级别的对象的依赖在表示层和持久层之间增加了一个灵活的机制,使得他们不直接联系在一起通过揭示从表示层到业务层之间的上下文〔Context〕来得到业务逻辑〔businessservices〕管理程序的执行〔从业务层到持久层〕1.2Struts、Spring和Hibernate概述1.2.4域模块层既然我们致力于的是一个Web的应用,我们就需要一个对象集合,让它在不同层之间移动。域模块层由实际需求中的业务对象组成比方,订单明细〔OrderLineItem〕、产品〔Product〕等等。开发者在这层不用管那些数据传输对象〔DataTransferObject〕,仅关注域对象〔domainobject〕即可。例如,Hibernate允许你将数据库中的信息存入域对象〔domainobjects〕,这样你可以在连接断开的情况下把这些数据显示到用户界面层,而那些对象也可以返回给持久层,从而在数据库里更新。而且,你不必把对象转化成DTO〔这可能导致它在不同层之间的传输过程中丧失〕。这个模型使得Java开发者能很自然运用面向对象编程〔Object-OrientedProgramming〕,而不需要附加的编码。本书围绕上述架构,通过一个完整的工程AscentWeb医药商务系统来具体展开Struts-Spring-Hibernate这三局部的讲解。1.2Struts、Spring和Hibernate概述1.3开发工具与配置开发工具与环境1.集成开发工具IDE:MyEclipse7.02001年11月IBM宣布捐出了价值4千万美金的开发软件给开放源码的Eclipse工程,Eclipse是替代IBMVisualAgeforJava的下一代IDE开发环境。〔注:Eclipse是“蚀〞的意思,SUN微系统公司推出了Java,eclipseofthesun就是“日蚀〞,以此与SUN公司竞争。〕Eclipse的官方网站是,你可以在Downloads栏目中下载其最新Release版本;当然你也可以下载它的官方中文语言包,这样,不仅程序界面甚至帮助文档都是简体中文的了。根据Eclipse的体系结构,通过开发插件,它能扩展到任何功能和任何语言的开发。这也正是Eclipse的潜力所在。Myeclipse是Eclipse开发插件,7.0版本支持spring2.5,所以选择MyEclipse7.0作为开发工具。2.效劳器:Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta工程中的一个核心工程,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP标准总能在Tomcat中得到表达。我们使用的是。Tomcat提供了各种平台的版本供下载,可以从://jakarta.上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。1.3开发工具与配置3.数据库:MySQL是一个多用户、多线程的SQL数据库,是一个客户机/效劳器结构的应用,它由一个效劳器守护程序mysqld和很多不同的客户程序和库组成。它是目前市场上运行最快的SQL〔StructuredQueryLanguage结构化查询语言〕数据库之一,你可以从上下载,它提供了其它数据库少有的编程工具,而且MySQL对于商业和个人用户是免费的。这里我们使用相对稳定的版本。MySQL的功能特点如下:可以同时处理几乎不限数量的用户;处理多达50,000,000以上的记录;命令执行速度快,也许是现今最快的;简单有效的用户特权系统。1.3开发工具与配置工具集成步骤1.Eclipse连Tomcat首先确定自己机器安装了,并且在环境变量中配置了java_home变量。翻开Eclipse,在应用中我们要应用MyEclipse7.0,该版本直接和Eclipse集成在一起。连Tomcat进行下面步骤选择Window->Preferences…进入下面界面如图1-6所示:1.3开发工具与配置选择MyEclipse->Servers->Tomcat->Tomcat6.x,如图1-7所示:首先选中Enable,然后Tomcathomedirectory选择根目录,点击Apply、OK即可。1.3开发工具与配置2.Eclipse连MySQL数据库点击Window->ShowView->Other…翻开如下对话框如图1-8所示:1.3开发工具与配置选择MyEclipseDatabase->DBBrowser点击OK。如图1-9所示:1.3开发工具与配置上面操作翻开了DBBrowser试图,在该试图空白区点击右键,选择New…进行新建连接〔如果有也可以右键Edit…〕,如图1-10所示:1.3开发工具与配置点击New…后出现以下图配置连接页面,如图1-11所示:按照上面配置连接,其中Drivername:自己随意取名,URL配置自己的ur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论