收藏 分销(赏)

基于j2ee的在线电子相册系统资料.doc

上传人:可**** 文档编号:9899709 上传时间:2025-04-12 格式:DOC 页数:61 大小:1,023.50KB 下载积分:8 金币
下载 相关 举报
基于j2ee的在线电子相册系统资料.doc_第1页
第1页 / 共61页
基于j2ee的在线电子相册系统资料.doc_第2页
第2页 / 共61页


点击查看更多>>
资源描述
硕士学位论文 基于J2EE的在线电子相册系统 二〇一〇年五月 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名: 年 月 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。 学位论文作者签名: 年 月 日 同济大学 硕士学位论文 摘要 摘要 随着人们生活水平的逐步提高,数码相机、手机照相等功能的普及,拍照摄影成了及时记录生活的每一个精彩瞬间,必不可少的一项活动。不论是旅游纪念,还是日常生活记录,拍照的使用无处不在。数码相片能够保存在电脑中,方便人们随时随地进行浏览。但是随着时间推移,照片数量的增加,照片的保存就会显得杂乱无章,即不方便欣赏,也不方便管理,可见,仅仅以一张张图片的形式放置在电脑上的方式并不可取。 在这种背景下,在线电子相册系统应运而生。它充分结合了网络技术和计算机技术。它实现了在线管理,浏览自己的相册中的照片和相片多人共享等功能。 在设计和开发电子相册系统的过程中,我们采用了标准的UML面向对象分析方法进行了系统分析和设计,并将上述技术在系统中加以实现。这些技术很好地改善了基于Web的电子相册系统的可用性及可扩展性,方便了系统后期的维护与升级。因此,本课题的研究对于构建高可靠性、可扩展性和可重用性的Web应用具有一定的参考价值。 最后,关于进一步工作的方向进行了简要的讨论。 关键词:电子相册,电子商务,Hibernate,Struts,Spring I Tongji University Master of Engineering Abstract ABSTRACT With the improvement of living standards and the photography function of digital cameras and mobile phones, taking pictures became an activity of timely photographic recording every moments of life and essential events. Taking pictures exists everywhere whether it is for travelling or it is for daily life. Digital photos can be stored in computers, it is easy for people to browse them anytime or anywhere. But as time goes on, with the increase of the number of photos, photo preservation will be very chaotic, which is inconvenient to enjoy and not easy to facilitate the management. So can see, only to be placed in the form of a picture the way the computer is not desirable. In this context, online photo album system came into being. It is combined with network technology and computer technology. It enables online management and browse your photo albums and photo sharing features such as multiplayer.  In the process of developing the Online Electronic Album System, the system is analyzed and designed with the method of the standard UML. And the technology mentioned above have been implemented in the system. The technology highly improves availability and scalability of Electronic Album System based on Web which also benefits to maintain and upgrade the system later. Therefore, the issue provided by this paper have some reference value for constructing a high-availability, scalability and intelligence of the Web Application. Key Words: Electronic Album, Electronic Commerce, Hibernate, Struts, Spring IV 同济大学 硕士学位论文 目录 目录 第1章 概述 1 1.1 课题研究背景 1 1.2 主要研究内容及开发工作 1 1.3 本文结构 2 第2章 系统开发相关技术 3 2.1 J2EE技术 3 2.1.1 J2EE的特点及其优势 3 2.1.2 J2EE的应用体系结构 3 2.1.3 J2EE的容器与服务 5 2.1.4 J2EE的核心API与组件 6 2.2 MVC设计模式 7 2.3 整合框架技术 8 2.3.1 Struts概述 8 2.3.2 Hibernate概述 10 2.3.4 Spring概述 12 第3章 电子相册系统需求分析 15 3.1 功能性需求分析 15 3.2 识别参与者与用例 17 3.3 非功能性需求分析 19 第4章 电子相册系统的设计 21 4.1 电子相册系统体系结构 21 4.2 提取应用实体 22 4.3 确定系统组件 24 4.4数据库设计 25 4.5系统的安全性设计 27 第5章 系统的实现 30 5.1 实现系统的HIBERNATE持久层 30 5.1.1 实现用户持久化类 30 5.1.2 实现相册持久化类 31 5.1.3 实现相片持久化类 32 5.1.4 实现相片评论持久化类 33 5.1.5 管理Hibernate的底层连接 35 5.2 实现系统的DAO层 35 5.2.1 实现用户DAO组件 36 5.2.2 实现相册DAO组件 37 5.2.3 实现相片DAO组件 37 5.2.4 部署DAO组件 38 5.3 实现业务逻辑层 39 5.3.1 业务逻辑组件依赖 39 5.3.2 定义和实现业务逻辑组件 40 5.4 实现系统WEB层 41 5.4.1 控制器的处理 41 5.4.2 用户登录 42 5.4.3 列出相册列表 43 5.4.4 列出相册列表和相片 43 5.4.4 上传和处理相片 43 第6章 系统测试环境及运行效果 45 6.1 系统的测试环境 45 6.2 系统测试 45 6.3 主要运行效果界面 46 第7章 总结与展望 49 7.1 结论 49 7.2 进一步工作的方向 49 致谢 50 参考文献 51 个人简历、在读期间发表的学术论文与研究成果 53 第1章 概述 第1章 概述 1.1 课题研究背景 目前,计算机技术、网络技术发展非常迅速,其他技术及产品也在日新月异地产生和变化。21世纪是网络信息时代,信息技术和网络技术的不断发展带动并促进着各科技领域迅速发展、扩大。信息技术是当代最富有活力和创造力的技术,网络技术己经成为人们相互交流、传递信息、协同工作不可缺少的重要技术。 在这种背景下,在线电子相册系统应运而生。它充分结合了网络技术和计算机技术。它实现了在线管理,浏览自己的相册中的照片和相片多人共享等功能。在Internet领域,电子相册是一个典型的web应用。 在线电子相册发展到现在,国内国外都已经出现了性能优良,强大硬件保障和技术支持,有良好的浏览体验和用户界面的网站。在技术层面,Internet领域中的电子相册是一个典型的web应用。这种在线相册可以在网络上与多人共享。目前在线的电子相册有的是以独立的产品形式出现,有的是以其他产品的某个功能的形式出现,实现电子相册的技术有很多,多基于ASP.NET和PHP等技术,根据不同的需求有不同的展现方式。 1.2 主要研究内容及开发工作 目前在多层应用结构方面,J2EE技术和.NET技术是两种主要的解决方案,二者各有特点。本文选择了J2EE作为开发平台,并结合一个在线电子相册系统的开发,提出了一种基于J2EE的Web应用设计方案,重点讨论了SSH框架、组件技术以及分层结构。文中介绍了电子相册系统的应用背景,需求分析,设计和实现过程及系统测试过程。 本系统的主要研究内容包括照片的浏览,保存,评论上传过程。具体机制如下: (1)本系统采用了用户访问控制策略,组件技术,XML数据表示与界面控制技术,客户端脚本技术,应用MVC模式的分层设计方法来优化客户端代码。 (2)分析了用于Web应用开发的Struts架构的优缺点,提出了用于改进其可用性及可扩展性的解决方案。 (3)将Spring和Hibernate技术融入Struts架构中,改善传统的基于B/S架 50 同济大学 硕士学位论文 基于J2EE的在线电子相册系统 构的电子商务系统的不足,并在客户端采用MVC模式来改进客户端代码的设计与实现。 (4)采用UML面向对象分析方法对系统进行分析与设计,借助开发工具与平台实现了基于SSH的电子相册系统,并对在设计实现中遇见的问题及难点进行了研究,给出了作者认为可行的解决方案。 总之,随着软件系统的规模扩大和复杂性的提高,软件体系结构的选择变得越来越重要。虽然本系统在功能设计上较为简洁,但它体现了一种基于组件、多层分布的J2EE体系设计思想,并在此基础上研究了应用SSH框架如何为用户有效地提高系统的可重用性。 1.3 本文结构 本文分为六个部分:第一部分介绍了电子相册的的研究背景、发展现状以及本文工作。第二部分介绍了电子相册系统所涉及的相关技术基础。第三部分对电子相册的系统进行需求分析,确定了系统设计重点,明确了设计思路。第四部分论述了所设计的电子相册系统。第五部分介绍了该电子相册系统的实现。第六部分介绍测试结果,并对整个论文进行了最后的总结。 第2章 系统开发相关技术 第2章 系统开发相关技术 2.1 J2EE技术 2.1.1 J2EE的特点及其优势 (1)J2EE的特点 目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台微型版(Java 2 Platform MICro Edition,J2ME)、适用于桌面系统的Java2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。 J2EE是SUN公司提出的一个分布式、多层应用的标准体系结构,它以组件的方式来设计、部署企业应用。J2EE技术的基础核心是Java平台,即Java2平台的标准版。J2EE具有“一次编写,到处运行”的特性、方便存取数据库的 JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlet API、JSP(Java Server Pages)以及XML技术的全面支持。其最终的目的就是成为一个能够使企业开发者大幅度缩短投放市场时间的体系结构。 (2)J2EE的优势 考虑到系统的特点,可扩展性、消除异构性、安全性以及对XML的支持性,确定采用J2EE技术作为此应用框架的开发技术,其优势体现在: ①现存IT资产的利用。 ②高效的开发。 ③支持异构环境。 ④可伸缩性。 ⑤稳定的可用性。 2.1.2 J2EE的应用体系结构 J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据它们所在的层分布在不同的机器上。事实上,SUN设计J2EE的初衷正是为了解决两层模式(Client/Server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改 同济大学 硕士学位论文 基于J2EE的在线电子相册系统 进,可伸展性也不理想,而且经常基于某种专有的协议——通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,图2.1是J2EE典型的四层结构。 图2.1 J2EE典型的四层结构 如图所示,J2EE的典型四层结构主要包括运行在客户端机器上的客户层组件、运行在J2EE服务器上的Web层组件、运行在J2EE服务器上的业务逻辑层组件和运行在EIS服务器上的企业信息系统 (Enterprise information system)层软件。 (1)客户层组件 客户层用于与企业信息系统的用户进行交互以及显示根据特定商务规则进行计算后的结果。J2EE应用程序可以是基于Web方式的,也可以是基于传统方式的。在一个基于Web的J2EE应用中,用户的浏览器在客户层中运行,并从一个Web服务器上下载Web层中的静态HTML页面,或由JSP或由Servlet生成的动态HTML页面。在一个不基于Web的J2EE应用程序中,一个独立客户程序,不运行在一个HTML页面中,而是运行在其它一些基于网络的系统(比如手持设备或汽车电话)中的Applet程序,在客户层中运行,并在不经过Web层的情况下访问企业beans。并且客户层中可能包括JavaBeans类来管理用户输入,并将该输入发送到企业层中运行的Enterprisebean类来处理。 (2)表示层组件 表示层又称Web层,Web层主要用于接收从浏览器传来的请求并将请求交给底层进行处理,同时将请求处理结果发送给浏览器。J2EE的Web组件主要由JSP页面以及显示HTML页面的Servlet组成。按照J2EE规范,静态的HTML页面和Applet不算是Web层组件。调用Servlet或者JSP页面的HTML页面在 应用程序组装时与Web组件打包在一起。和客户层一样,Web层可能包含某些JavaBean对象来处理用户输入,并把输入发送给运行在业务层上的Enterprisebean来进行处理。 (3)商业逻辑层组件 涉及企业业务的复杂商务逻辑由运行在业务层的EJB组件来执行。EJB组件可以完成从客户端应用程序中接收数据、按照商务规则对数据进行处理、将处理结果发送到企业信息系统层进行存储、从存储系统中检索数据以及将数据发送回客户端等功能。业务逻辑层位于应用服务器中,应用服务器中的 EJB Container提供了分布式计算中组件所需要的所有服务。有三种企业级bean:会话(session)beans,实体(entity)beans,和消息驱动(message-driven)beans。 (4)企业信息系统层 企业信息系统层处理企业信息系统软件,包括企业基础建设系统。例如企业资源计划(ERP),大型机事务处理,数据库系统和其它的遗留信息系统。例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。在应用开发时,J2EE定义的四层模型可根据实际情况灵活运用。由于除了Applet外其他的组件都可以访问数据库、EJB组件和企业信息系统,所以通过不同层的取舍及组合,可以衍生出许多应用软件开发模型,如基于Web的四层模型、基于桌面应用的三层模型(不包括Web层)、BZB模型(不包括客户层)等。如果应用系统比较简单,一般不用EJB作为逻辑层,而直接用Web组件来实现商业逻辑和数据访问,毕竟EJB的开发和部署费用还相当高。 2.1.3 J2EE的容器与服务 J2EE是一个基于组件—容器模型的系统平台,其核心概念是容器。所谓容器就是指为特定组件提供服务的一个标准化的运行环境,Java虚拟机就是个典型的容器。J2EE应用组件可以安装部署到容器中去。J2EE平台由四种称为容器的编程环境组成。 (1)EJB容器:提供适合于企业bean开发、部署以及运行时管理的环境。企业bean时实现业务过程和实体的组件。 (2)Web容器:提供适合于Servlet和JSP(Java Server Pages)开发、部署以及运行时管理的环境。这些Servlet和JSP组称为Web应用的可部署单元。一个Web应用实现了一个企业应用的呈现逻辑。 (3)应用程序客户端容器:提供适合于执行J2EE应用客户的环境。这个环境本质上就是J2SE。 (4)Applet容器:提供适合于执行Java Applet的环境。这个环境通常被嵌入到一个浏览器中。 容器设置定制了J2EE服务器所提供的内在支持,包括安全,事务管理,JNDI(Java Namingand Directory Interface)寻址,远程连接等服务,以下列出最重要的几种服务: ①J2EE安全模型。 ②J2EE事务管理模型。 ③JNDI寻址服务。 ④J2EE远程连接模型。 ⑤J2EE认证和授权服务。 ⑥解析XML的 JavaAPI(JAXP)。 ⑦生存周期管理模型管理。 ⑧JavaMai1API。 ⑨数据库连接池模型。 2.1.4 J2EE的核心API与组件 J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的技术规范进行简单的描述。 (1)Servlet技术 Servlet是一个服务器端组件,它可以用来扩展任何运行Java的服务器的功能,但是大多数Servlet是用来在Web服务器上编写Web应用程序的。Servlet通常用来创建内容非静态的Web页面,内容会根据用户输入或其他变量数据而改变的Web页面称为动态页面,Servlet尤其适合创建动态的Web页面。 Servlet的主要特性和优点包括: ①ServletAPI提供了为网络应用定制的接口。 ②Servlet是独立于服务器和平台的,这使得Servlet可移动而且可重用。 ③Servlet是高效的,并且是可升级的。 ④Servlet运行在服务器内,所以可以为某种目的让服务器执行特定的功能,比如用户身份认证。 尽管Servlet提供了如此强大的功能和方便的易用性,但是,在编写服务器端程序的时候,必须在Servlet代码中直接加入很多的HTML代码,这对于程序的编写和维护来说,都是一个很大的负担,造成了程序逻辑和页面显示的混淆。 正是为了消除这种基于J2EE的网上书店应用框架的研究和设计的麻烦和不清晰的分离,SUN公司引入了一种新的编制服务器端页面显示的技术—JSP技术。 (2)JSP技术 为了解决Servlet中页面显示和业务逻辑的分离,SUN推出了Java Server Pages (JSP)技术。在这种新的技术中,JSP提供了Servlet所有的好处,事实上,JSP在执行的时候,也是先编译成Servlet来执行的。这种技术采用的方式是在传统的网页HTML中加入Java程序片断(Scriptlet)和 JSP标记,这样就构成了JSP网页。WEB服务器在接收到用户的请求的时候,首先执行其中的程序片断,然后将执行结果以HTML的方式返回给客户。所有程序操作都在服务器端执行,网络上传送给客户端的仅仅是得到的结果,对用户浏览器的要求很低。 由于JSP是从Java和Servlet技术上发展而来的,它兼具有这两者的好处,它同样具有平台无关性和Java本身的安全模型和机制。JSP在执行以前先被编译成字节码,字节码由Java虚拟机解释执行,比源码解释的效率要高,而且在服务器上还有字节码的缓存机制,能提高字节码的访问效率。除此之外,在JSP中还提供了强大的服务器端组件技术和对数据库以及标签库的支持。 (3)用JDBC(Java Database Connectivity) JDBC是SUN公司提出的访问数据库的标准,是Java下最早的数据持久化技术,也是目前最为成熟的。它提供了一套标准的API供应用程序访问基于SQL的数据库格式文件等。用BC屏蔽了底层不同的数据库,以一致的接口提供给程序员,JDBC接受应用程序的SQL请求语句,连接、操作数据库,最终将结果返回给应用程序。 2.2 MVC设计模式 MVC(Model—View—Controller,即模型—视图—控制器)是一种可用于Web开发的经典设计模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分。 (1)视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接受用户的输入数据,但是它并不进行任何实际的业务处理。 (2)模型是应用程序的主体部分。模型表示业务数据和业务逻辑。 (3)控制器用来接受用户的输入并调用模型和视图去完成用户的需求。当Web用户单击Web页面中的提交按钮来发送HTML表单时,控制器接收请求并 调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。 MVC模式克服了以往Web程序将像数据库查询语句这样数据层代码和像HTML这样的表示层代码混在一起而使得维护JSP网页非常困难,也很难满足用户的变化性需要的缺点。从根本上强制性地将它们分开,首先,多个视图能共享一个模型。也就是说,在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用;其次,模型是自包含的,与控制器和视图保持相互独立,所以可以方便地改变应用程序的数据层和业务规则;此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择合适的模型进行处理,然后选择适当的视图将处理结果显示给用户。MVC通过强制性的分离三个模块,实现了设计思想中松耦合的设计要求,使得三个模块之间改变其中一个不会影响到另外两个。MVC适合业务逻辑复杂的大型应用程序,MVC使得软件在健壮性、代码重用和结构方面上一个新的台阶。从这个角度考虑,在应用程序开发的最初构建MVC框架是十分必要的。 2.3 整合框架技术 2.3.1 Struts概述 在软件开发者开始一个软件项目时,首先应该构思该软件应用的框架,规划软件模块,并定义这些模块之间的接口和关系。但是要从头设计开发出一个可靠、稳定的框架并不是一件容易的事。随着Web开发技术的日趋成熟,在Web开发领域出现了一些优秀成熟的框架,使得开发者可以在此基础之上进行快速,高效的开发,构造出结构良好,高可重用性的应用。Struts就是其中的一个广泛应用于Web开发的优秀框架。 使用Struts框架,开发者可以集中精力编写应用程序业务逻辑和表示层代码,其它事情都交给Struts框架负责。从而加速项目的开发进程,降低学习与开发Web应用的难度。 Struts是在JSP Model 2的基础上实现的一个MVC框架。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成,Struts框架结构如图2.2所示。 图2.2 Struts框架结构 视图(View)是一组JSP文件。在这些JSP文件中没有业务逻辑,也没有模型信息,Struts把复杂的处理分离到Model和Controller组件中,从而使JSP变得更加小巧并且有利于程序员与设计师职责的分利,大大简化并加速了开发、测试及维护的工作。同时Struts提供了丰富的JSP标签库:Html,Bean,Logic,Template等,并且还允许开发者自定制标签,通过使用这些标签创建的JSP窗体,可以更好的和系统的Model部分交互,实现和Model部分中的ActionForm的映像,完成对用户数据的封装。从而有利于表示逻辑与程序代码分离。 模型(Model)表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由JavaBean或EJB组件来实现。MVC系统中的模型根据其作用可划分为两部分:记录系统状态的Bean和封装业务逻辑的Bean。系统状态Bean主要用来封装和维护系统状态信息,业务逻辑Bean主要用来封装具体的商业逻辑,即信息处理规则。Struts通常使用一组JavaBean表示系统状态,根据系统的复杂度也可以使用像Entity EJB和Session EJB等组件来实现系统状态。Struts为Model部分提供了Action和ActionForm对象:Action类实现核心商业逻辑,它可以访问java bean、调用EJB或访问后台数据库,调用业务逻辑模块,并将结果提交到合适的View组件以产生响应;ActionForm对象通过定义属性对客户端表单数据进行描述,它结合自定义标签库实现表单数据的良好封装和支持,使得Action对象可以直接对它进行读写,不再需要和request,response对象进行数据交互,从而实现了对View和Model之间交互的良好支持。Struts在实现时把做什么(Action)和如何做(业务逻辑)分离,保持了模型与视图和控制器的分离,保证了最大限度的实现业务逻辑的重用。 Struts架构的核心是一个MVC风格的控制器(Controller),该控制器实际上是模型组件和视图组件之间的桥梁,是整个Web应用程序的“控制中枢”。Struts架构中控制器组件所承担的主要功能是:接受浏览器客户端的处理请求,调用对 应的模型组件来执行相应的业务逻辑,根据当前的状态数据及业务逻辑的处理结果,选择合适的视图组件呈现在浏览器客户端。在Struts中控制器的功能由ActionServlet类和Action类来实现,ActionServlet类是Struts框架中的核心组件,它在MVC模型中扮演着中心控制器的角色,ActionServlet负责接受客户端的请求,并根据配置文件将之分发到相应的Action对象处理。Action类负责调用模型的方法,更新模型的状态,并控制应用程序的流程,对于大型应用,Action充当着用户请求和业务逻辑处理之间的适配器,不用于实现具体的业务逻辑,Struts应用程序的工作流程如图2.3所示。 图2.3 Struts应用程序的工作流程 Struts应用程序的工作流程清楚的体现了MVC系统的特点,Struts控制器的ActionServlet对象处理客户请求,利用配置的ActionMapping对象把请求映像到Action处理器对象进行处理。Action处理对象访问ActionForm中的数据,处理和响应客户请求,根据需要调用后台的Bean组件,这些组件封装了具体的业务逻辑。Action处理器对象根据处理结果通知控制器进行下一步的处理。 Struts为我们提供了一个非常好的MVC框架,利用Struts架构开发大型Web系统,大大提高了后期软件开发的效率,有利于构建结构清晰,易于扩展及可复用强的应用系统。 2.3.2 Hibernate概述 对象/关系映射一直都是数据库技术中的难点,尽管人们提出了许多方案解决这个问题,但都不能完全做到即便利又高效。EJB的推出让人们看到了希望,但实践证明实体Bean的效率并不高,并且还十分难于为初学者理解。由Gavin King创建的Hibernate框架,从某种程序上正在朝着正确的方向迈走,并且得到越来越多IT从业人员的认可。就像当年的Struts框架一样,Hibernate也已经在许多项目中得到广泛应用。Hibernate由于投注了更多的精力在提升效率上,使 用起来又十分方便,新版的EJB规范正在向Hibernate方向靠拢。正是由于得到广泛的认可,Hibernate已经成为程序员必须掌握的技术之一。 Hibernate独立于特定数据库,即Hibernate不依赖特定的关系型数据库。Hibernate使用方言机制屏蔽底层数据库的实现细节,提供统一的关系数据库访问接口。 Hibernate使用映射文件实现持久化类和数据库表的映射关系,在映射文件中,可以定义持久化类之间的各种关系,并使用特定的配置反映到数据库表的结构上,比如:持久化类的关联关系,对应到数据库中,就是数据库表之间一对多或者多对多的关系。 在Hibernate配置文件中设置数据库连接信息,导入映射文件后,通过特定的实现启动Hibernate,然后由Hibernate管理数据库的连接以及持久化类和数据库的映射关系;同时,向应用逻辑提供访问接口,实现数据的操作。 Hibernate根据Hibernate配置和Hibernate映射初始化Hibernate应用环境,然后Hibernate接收从应用程序传过来的持久化对象,经过处理后,保存对象到数据库中。另一方面,Hibernate能够从数据库中装载数据行,转化为持久化类的实例并提供给应用程序使用。从图中可以看出,Hibernate是数据库和应用程序之间的桥梁,应用程序不必关心数据是如何获取或存储的,其实现细节完全由Hibernate完成。同样,Hibernate不必关心数据库的实现细节,只需要调用数据库的接口就可以了。这样,层与层之间实现了较高程度的解耦,为应用扩展带来了极大的方便。 Hibernate本身包含丰富的特性,向外界提供了大量的应用程序编程接口,客户端可以针对自身应用的特性,根据需要使用特定的接口,构建不同的应用架构。Hibernate提供灵活的架构方式,支持多种应用解决方案。在本文中,应用了Hibernate最小集合的应用架构。 Hibernate的最小集合应用架构,使用了Hibernate的核心API,可以称之为“轻量级”应用架构。在最小集合应用架构中,Hibernate提供应用系统中的持久化服务,负责应用逻辑和数据库的交互,位于应用的中间层次。最小集合应用架构在运行时,Hibernate体系机构可以用图2.4描述。 图2.4 Hibernate最小集合应用架构 图2.4显示了Hibernate“轻量级”解决方案,之所以说是轻量级,是因为在这种应用情况下,应用程序需要自行提供JDBC连接,并自行管理事务单元。这种应用架构使用了Hibernate API的一个最小子集。使用最小运行时环境时,应用程序提供JDBC连接给Hibernate,Hibernate根据持久化类的映射,进行相关数据操作,最终由应用程序提供的JDBC连接提交事务。 2.3.4 Spring概述 Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与铁定应用相关的部分,从而大大提高了企业应用开发的效率。Spring提供了一种Template的设计哲学,这些Template完成了大量的通用步骤,如果开发者使用这些Template,则无须自己实现这些通用步骤。 Spring为企业应用的开发提供了一个轻量级的解决方案,该解决方案包括基于依赖注入的核心机制,基于AOP的声明式事物管理,与多种持久层技术的整合,以及优秀的Web MVC框架等。Spring致力于J2EE应用各层的解决方案,而不是仅仅专注于某一层的解决方案。可以说,Spring是企业应用开发的“一站式”选择,Spring贯穿表现层、业务层和持久层。然而,Spring并不想取代那些已有的框架,而是以高度的开发性与它们无缝整合。 总结起来,Spring有如下优点: ①低侵入式设计,代码的污染极低。 ②独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺。 ③Spring的DI机制降低了业务对象替换的复杂性。 ④Spring的高度开发性,并不强制应用完全依赖与Spring,开发者可自由选择Spring框架的部分或全部。 Spring 框架是一个分层架构,由7个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式,如图2.5所示。 图2.5 Spring框架图 组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 Spring AOP:通过配置管理特性,Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很容易地使Spring框架管理的任何对象支持AOP。Spring AOP 模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集 成到应用程序中。 Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO的面向JDBC的异常遵从通用的DAO异常层次结构。 Spring ORM:Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服