基于MVC的客户管理子系统的设计与实现.docx

上传人:牧羊曲112 文档编号:2018910 上传时间:2022-12-31 格式:DOCX 页数:48 大小:451.13KB
返回 下载 相关 举报
基于MVC的客户管理子系统的设计与实现.docx_第1页
第1页 / 共48页
基于MVC的客户管理子系统的设计与实现.docx_第2页
第2页 / 共48页
基于MVC的客户管理子系统的设计与实现.docx_第3页
第3页 / 共48页
基于MVC的客户管理子系统的设计与实现.docx_第4页
第4页 / 共48页
基于MVC的客户管理子系统的设计与实现.docx_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《基于MVC的客户管理子系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于MVC的客户管理子系统的设计与实现.docx(48页珍藏版)》请在三一办公上搜索。

1、 学号 密级武汉大学本科毕业论文基于的客户管理子系统的设计与实现院(系)名 称:国际软件学院专 业 名 称 :软件工程学 生 姓 名 :查智指 导 教 师 :李晓剑 二九年五月郑 重 声 明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。本人签名: 日期: : : : : 摘 要随着金融业的不断发展,各商业银行越来越注重信用卡业务的开拓,信用卡管理的

2、信息化,也随着计算机技术的发展,在不断地完善提高。信用卡管理信息的多样化和数据资源的复杂性,都对信用卡管理软件的实现模式提出了很高的要求,而基于的传统的软件构架已经不能满足软件设计的要求,很多新兴技术的发展和应用正在不断地改善传统的开发设计构架。本文结合信用卡管理的需求和当前比较先进的设计思想,利用设计模式进行设计,并对该设计模式进行了改进,加入了数据持久层和业务逻辑层的实现。是基于模式的应用开发框架。它有效的分离了表示层和业务逻辑层,但它并没用对复杂的数据持久层提供支持。而提供了灵活的数据持久层支持。因此通过将这两个框架整合起来,并结合贯穿整个表现层、业务层、持久层的,可以得到一个开发灵活、

3、低耦合及易扩展的企业应用完整解决方案。( ) 是一种通用的可视化建模语言。由于其定义良好、易于使用、功能强大且普遍适用的特点,并且融合了当前一些面向对象的主要概念和技术,已经成为软件开发事实上的标准。结合商业银行相关标准,本文设计并实现了一个基于、和的信用卡管理系统中的客户管理子系统。系统采用语言和面向对象的方法进行系统分析和设计,从而降低了开发风险,提高了开发效率。系统基本实现了信用卡客户管理的功能,如账户管理、存取款管理、结算管理、账单管理等。关键词: ; , , . , ; , . , . . , . . , , , ; , . . , , , , . , , . . , . , , ,

4、 . : , , , , , 第章 引言 选题的目的和意义随着经济全球化的推进与中国金融业改革的不断深化,人们的生活消费方式也有了显著的变化,最明显的就是人们随身携带的不再是大量的现金,而是一张张小而轻巧的信用卡。信用卡( )作为非现金交易付款方式,以其便于携带、使用方便、交易安全等优点,在欧美国家得到了普遍地使用。本世纪初,信用卡开始在中国流行,近几年来得到了迅速的发展,据统计,截至年月日,中国信用卡发行量已猛增到亿张。目前,多数商业银行都推出了信用卡业务,随着发卡量的增加,如何提高信用卡管理与结算效率并将信用卡管理人员从繁杂的手工劳动中解放出来,成为一个迫切需要解决的问题。在这样的背景之下

5、,“软酷网”卓越实验室研发六部经过分析研究,选择了“信用卡管理系统”作为实训项目。该系统采用便于使用与维护的开发模式,这样信用卡管理人员只需要通过浏览器便可在银行内网中进行各项管理操作,同时还采用了基于()的框架进行软件的开发,能够很好的实现模型与表示层的分离,由控制器来进行业务流程控制,符合 应用系统开发的基本要求,也有利于软件后期的升级与维护。 信用卡管理系统的发展状况近年来,随着网络技术和金融业的不断发展,各商业银行越来越注重信用卡业务的开拓,因此对信用卡管理提出了更高的要求。改变原有的管理模式,运用先进的手段进行管理,已经成为现在信用卡管理的必然选择。这样,各种针对信用卡管理的应用软件

6、不断涌现,并且经历了从单机版到网络版的转化。网络信用卡管理软件的发展更加有力地提高了信用卡管理水平,借助金融业网络信用体系构建信用卡管理系统,可以合理利用的网络资源和跨平台的数据访问能力,通过网络来进行交易记账、结算及存取款,信用卡用户们可以通过浏览器来直接参与信用卡的管理。同时,信用卡系统的管理人员可以很方便地获取及时、准确、全面的数据和相关信息,将银行卡部员工从繁琐的手工劳动中解放出来,提高生产率,进而从整体上提高了信用卡管理的水平。然而信用卡管理系统的设计也不能一劳永逸,由于各商业银行经营理念的不同、结算体系的不同及信用评估的不同,而各不相同,没有统一的标准,也很难建立一个统一的标准,系

7、统的适用性、通用性很难实现。所以,现在信用卡软件的开发设计在向各种流行的设计模式靠拢提高系统的可移植性和可扩展性的同时,还要考虑到自身信用卡管理的特点,以便更好地满足信用卡管理的需求。 论文研究内容当前计算机技术越来越趋于成熟,各种设计思想不断涌现,成为适用于各种大型应用的构架技术。它的目的就说最大限度地降低系统各部分之间地耦合度,提高系统的可扩展性,提高代码的重用率。基于的技术的应用更是广泛,本文这里也主要采用框架来实现上述技术,并以此作为信用卡管理子系统的技术解决方案。本文的主要工作如下:()详细介绍了开发模式的设计思想,分析了两种常见的 的优缺点,并介绍了实现设计思想的框架,并分析了的工

8、作流程,以及开发的优势。()以模型为设计思想,运用框架来实现信用卡管理系统的开发设计。本文采用当前比较流行和便捷的模式开发模式,采用框架来实现系统表现层与业务层的分离,更加有利于系统的开发与维护。进一步在系统的业务实现层和数据库之间加入了数据持久层,使得系统对数据库的访问实现面向对象的设计。简单介绍了数据持久化技术以及本文实现数据库持久层的工具持久化框架。()对信用卡系统进行总体的分析,对信用卡管理中主要业务进行了分析,并进一步确定了系统的技术构架。以客户管理子模块为例,说明系统开发设计的流程和具体的业务实现。介绍了贯穿表现层、业务层、持久层的框架,作为一个依赖注入的容器,对与实施监控的同时,

9、且可以做安全、日志工作。 论文结构本文主要研究在平台下基于设计模式开发信用卡管理软件应用程序的相关技术,在传统的应用程序开发的基础上,对基本的设计模式进行了改进,采用三层开发模式来降低系统各个模块之间的耦合性,并通过一个具体模块的实现来说明各个层次的设计和实现。全文共分为五章:第章,引言。介绍了信用卡管理软件的发展现状,并进一步分析了该类软件开发过程中存在的问题;第章,信用卡系统总体设计分析。概括分析说明了信用卡管理的主要业务,在了解用户需求的基础上,设计了系统的总体功能模块,采用了语言对系统进行建模;第章,系统研发技术。阐述了设计模式以及常见的设计模式,并介绍了这个用来实现设计思想的开源项目

10、,另外还对引入的数据持久技术和本文实现这种技术的持久框架做了介绍,也对整合前两个框架实现依赖注入与切面编程的做了简要介绍;第章,客户管理子系统的设计与实现。通过对该模块的实现,来体现整个设计思想,并介绍了本文实践项目的一些亮点与独到之处;第章,系统评价。主要从系统安全和性能特点两方面来介绍;第章,总结语。总结整个设计,并说明不足及进一步改善的方向。第章 信用卡管理系统总体分析 系统简介信用卡管理系统是集账户管理、信用卡管理、用户信息维护、报表信息管理为一体的业各系统,具有灵活的应用架构、费用结构和产品定义,在系统、机构、产品、客户、账户、交易等各个层面均实现参数化,是一个以客户为中心的多产品、

11、多账户、多卡综合应用系统。 信用卡管理系统的总体功能框架信用卡管理系统主要实现银行信用卡和客户间交易的记账和管理功能。信用卡管理涉及到的内容很多,但从大体上来看,它的主要业务可以归纳为四个部分:账户管理、信用卡管理、报表管理、系统管理;主要面对三类用户:银行普通员工、银行部门经理、系统管理员。信用卡管理系统的总体功能框架如图所示。图 信用卡管理系统功能结构图 系统的开发原则() 可延展性和包容性系统应具有较好的可延展性和包容性。系统的可延展性应包括能够很好的兼容已有的系统和能够在今后一段时间内实现对系统软硬件扩展,能有效地保护已有的投资,系统易于扩充升级,既要满足当前业务的需求,又能随时进行扩

12、展和维护。() 系统简洁,易使用、易维护系统的设计符合日常办公运作的需求,功能不仅要实用,还应该简单易学,具有比较友好的用户界面,易于扩充。整个开发设计层次简单明了,便于管理,易于扩充。() 为员工,经理提供良好的信息服务系统对信用卡信息进行了合理的布局,以便于提供优质、高效的业务管理和事务处理,是系统用户对信用卡账户进行维护,完成信用卡交易记账和管理() 可靠运行,安全BaoMi在该系统的开发过程中,将通过身份认证,权限检查,来解决信用卡管理系统的安全性、BaoMi性问题,确保系统的有效和安全运行。 系统功能概述信用卡管理系统不仅要管理信用卡使用的各个环节:如开卡到记账、存取款的业务活动,还

13、要管理所涉及到的各种对象和资源:如管理员、系统用户、账户、信用卡等;同时信用卡管理系统还要提供相应的算法来结算账单。其中客户管理模块主要的业务功能实现,将在以下进行相关的介绍。() 客户开户申请管理子模块客户提交开户申请表,进行合法性验证,交给银行员工审核,如果审核通过,将客户信息填入客户信息表,并为客户开通信用卡服务所需的账号,客户开户管理子模块的业务流程如图所示。图 客户开户管理子模块业务流程示意图()账户信息维护子模块通过对开户客户的消费、取现、透支等交易记录统计,银行员工修改相应账户的信用额度,同时完成账户的销户工作。该模块的业务流程如图所示。图 账户信息维护子模块业务流程示意图()

14、取款管理子模块取款管理子模块主要完成取款申请、取款合法性验证、自动完成取款额与可用额、信用额度的核对等,最大限度的实现取款的自动化。该模块的业务流程如图所示。图 取款管理子模块业务流程示意图图 账单管理子模块业务流程示意图() 账单管理子模块账单管理是信用卡管理中很重要的一部分。该模块主要列出客户交易账单的信息,并对每月账单进行相应的结算,以便客户进行查询与打印。该模块的业务流程如图所示。() 报表管理子模块报表管理是信用卡管理中只针对银行经理一个模块。通过查看报表,银行经理可以了解银行开户、户头信用额、信用卡透支的现状及其发展趋势,清晰的把握信用卡业务的发展脉络,制定出相应的发展策略。该模块

15、的业务流程如图所示。图 报表管理子模块业务流程示意图以上描述了客户管理、报表管理的大致功能及其数据流图,而信用卡的管理及系统管理,其业务流程与客户管理开户与信息维护的流程大致相似,因此这里不做过多介绍。 系统技术构架本系统采用了先进的设计理念和一些主流的技术。系统采用基于的技术和技术来实现的。传统的技术平台是一个三层结构。如图所示。图 三层结构示意图目前,技术都是通过来实现客户端和服务器的通讯的,对于简单的静态文本来说,是一个很好的选择。但却不能很好地应用于复杂的业务处理,因为当用进行通讯时,必须以服务器作为中介。然而当同一时刻客户访问量过大时,服务器则将成为整个系统的瓶颈。而基于的技术能很好

16、地解决以上问题。根据项目需求分析,确定本系统必须具备的性能有:()具有良好的交互性:工作内容中有相当大的部分是人机交互,这就要求系统的交互性要强,从而满足需求。()具有较好的可扩展性:工作的内容和形式具有多变性,从而要求系统具有良好的可扩展性。()良好的可维护性:系统投入使用后,主要是由管理员承担系统维护的工作,维护人员不定期变动,这就要求系统的可维护性强。()较好的跨平台性:用户可能使用各种不同的操作系统,而且为了适应今后可能的变化,系统应具有较好的跨平台性。一个典型的应用能很好地满足以上的性能要求,它至少包括表现层、业务层、数据持久层和数据库服务器四个部分。在开发信用卡管理软件组件模板时,

17、本文采用来实现信用卡系统的表现层,数据持久层选择了 (),业务逻辑层则用普通对象,把和这两种在业内比较推崇的开源技术相结合,并引入依赖注入,使用代替,进一步整合前两个框架,提升了项目开发的效率和易维护性。这样也相应地扩展了传统的三层体系结构,本文开发的系统体系架构如图所示。图 信用卡管理系统技术结构图 这种设计使服务器端和数据服务端可以根据系统的需求进行配置,为系统结构提供极大的灵活性和收缩性。采用该多层结构技术的另一个优势是“瘦”客户端的设计和实现。主程序和主要的业务功能模块都放在应用服务器上,客户端只需安装浏览器就可以在本地运行。本信用卡系统设计中,客户端为浏览器,中间层以作为应用服务器支

18、持业务逻辑的处理,以 作为数据库服务平台。第章 系统平台与技术 设计模式 模式的介绍随着开发的不断发展和需要,模式被推荐并成为公司平台的设计模式,并且在应用中受到越来越多的开发者的欢迎。原来是 在八十年代为编程语发明的一种应用程序的框架结构,至今已被广泛使用。该框架结构支持三层结构的类:表现应用程序状态层、屏幕表现层和控制流层,因此这三层被称为模式()、视图()和控制器()。是可以满足那些需要为同样的数据提供多个视图的应用程序的开发需要,在开发与用户界面相关,特别是对用户界面要求较复杂的相关的应用程序时,可以很好地以不同的方式来显示同一数据,也就是在不改变软件功能的前提下,可以实现用户对用户界

19、面的个性化要求,而模式的最大特点就是将业务层与表示层分离,而且提供了很多使显示界面更加个性化的标签库,所以它能更好地实现用户界面的各种个性化需求。通常用于分布式应用系统的设计和分析,如:大型商业网站、企业信息系统、管理信息系统、决策支持系统等,但它本身并不局限于某一个特定的领域。设计模式,最近几年被推荐为公司平台的设计模式,它强制性地把应用程序的输入、处理和输出分开。它的三个核心部件分别是模型、视图和控制器,它们各自处理各自的任务:()模型(业务逻辑层):表示企业数据和业务规则,实现具体的业务逻辑、状态管理的功能。在的三个部件中,模型拥有最多的处理任务。例如它可能用像和 这样的构件对象来处理数

20、据库。被模型返回的数据都是中立的,也就是说模型和数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。()视图(表示层):即用户看到并与之交互的界面,是应用程序的外在表现,通常实现数据的输入和输出功能。对老式的应用程序来说,视图就是由元素组成的界面,在新式的应用程序中,依旧在视图中扮演着重要的角色,但一些新的技术也层出不穷,它们包括 和像、等一些标识语言和 。因此如何处理应用程序的界面变得越来越有挑战性。一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列

21、表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。()控制器(控制层):起到控制整个业务流程的作用,根据用户的输入调用相应的模型和视图去完成用户的需求和相关的操作。具体地来说:控制器本身不输出任何东西和做出任何处理。它只是接受客户的请求并进一步决定调用哪个模型去处理该请求,并根据处理结果来确定用哪个视图来显示模型处理之后返回的数据。它们三者之间的关系如图所示。 图 组件类型的关系和功能 开发的优势经过以上对开发模式的介绍,以及两种开发模式的比较,我们对开发模式有了一定的认识,这里将进一步介绍说明利用模式开发的优势,具体表现在以下几个方面:()模式很好地解决了软件工程中如何使软件系统

22、各模块之间最大限度地降低其复杂的耦合关系,以及系统显示逻辑和业务逻辑之间的矛盾(即用户界面的多变性和业务逻辑的相对不变性),可以尽可能地提高系统的可维护性和可扩展性。()模型、视图、控制器三者的相互独立,当我们改变其中一部分时,其他两部分不会受到影响,进而构造出良好的松耦合构件。()所有的模型和视图都是由控制器连接和调用的,控制器控制功能使得它可以根据用户不同阶段的不同需求选择不同的模型进行处理,并选择不同的视图将处理结果显示给用户,很好地提高了系统的灵活性。()一个模型可以拥有多个视图或者说多个视图可以共享一个模型。多个视图能够提供多种数据显示方式,以满足不同用户的需求。变化传播机制可以确保

23、所有相关的视图和其模型达到同步,这一切都可以通过控制器的协调来实现。()模型的可移植性和伸缩性。模型的相对独立性使得它很容易被移植到新的平台工作,很容易被改变业务规则而不影响视图和控制器。然而,由于是一个非常复杂的系统,所以采用实现应用时,最好选一个现有的框架,在此之下进行开发。由于具有完整的文档并且相对来讲比较简单,所以一般采用它来开发系统,实际上,就是在 的基础上实现的一个框架。 项目概述 是组织的一个项目,像其他的组织的项目一样,它也是一个开源项目。作为一个设想是 于年提出的,该设计的目标是为利用技术开发基于模式的应用提供一个标准模式。基于架构的应用程序基本上符合的设计标准,是设计模式的

24、一种变形,提供了对开发系统的底层支持,它采用的主要技术是、和 。框架是一种基于的技术,应用程序开发人员通过框架即可充分利用面向对象设计,代码重用及“编写一次,到处运行”的优点。另外,不仅是拥有自己的控制器,同时整合了其他的一些技术来实现模型层和视图层,例如:在模型层,它可以很容易与数据库的访问技术相组合,包括技术和技术;在视图层,它能够与、等组件相结合 。所以从一定的意义上讲,采用来实现基于的应用的开发,可以根据具体的需求来选择设计的复杂程度,具有很好的扩展性。的主要优势功能如下:()中包含一个控制器,用来控制用户的请求发送到相应的对象;()在页面中可以选用自定义标签库,并且在控制器中提供关联

25、支持,这样可以帮助开发人员方便快捷地创建交互式表单应用;()还提供了一系列实用对象:文件处理、通过 自动处理属性、国际化的提示和消息。 核心组件是一组相互协作的类、和标记,它们组成了一个可重用的设计模式。这个定义表示是一个框架,而不是一个库,但同时也包含了丰富的标记库和独立于该框架工作的实用程序类库。通过一些组件类来完成框架的功能,这些组件包括、。. 继承自类,它在中扮演的角色是中心控制器。它提供了一个中心位置来主要负责将客户请求组装后,根据配置文件的指定的描述,转发到适当的处理器。另外,除了作为应用程序的前端控制器外,实例还负责初始化和清除应用程序的资源。. 一个类的角色,就像是客户请求动作

26、和业务逻辑处理之间的适配器,它作为应用程序响应用户请求的动作,将请求与业务逻辑分开。这样用户的请求和类之间可以有多个点对点的映射。最为常用的方法是(),典型的类一般要在()方法中实现下列逻辑:()检查用户的当前状态。如果过期或者用户没有登录,要将表示层的页面跳转到用户登录页面;()检查用户输入的合法性。调用 实例的()方法检查一些字段的输入值是否恰当或合法;()执行业务操作。调用业务逻辑的相应方法执行用户的业务请求;()更新服务器端的对象。将的状态改变通知给,并返回请求页面。. 一个应用系统的消息转移(或者说状态转移)的非持久性数据的存储,通常由 来负责,它的主要功能是为的操作提供与客户表单相

27、映射的数据。对于每一个客户的请求,一般要经历如下几个步骤:()检查的映射,确定配置文件中己经配置了对的映射;()根据属性查找的信息;()查找的使用范围,确定在此范围下是否存在对应的 的实例;()假如在当前范围内,相应的 的实例己经存在,而且对当前的请求来说是同一类型的话,就可以重用,否则,就要重新构建一个 的实例;()调用 的()方法;()调用对应的()方法,对状态属性赋值;()如果属性值被设置为,则调用 的()方法;()如果()方法没有返回错误,控制器将作为参数,传给实例的()方法执行。 . 当实例的()方法运行完毕后,控制器根据可以将响应信息转到适当的地方,的主要功能就是对将要转向的视图的

28、地址的一个封装。转向的各种属性也可以在配置文件中设置性,这样就大大提高了软件的复用性和可维护性。 . 以的形式封装了怎样将一个请求映射到与其对应的的一些信息。对象帮助进行框架内部的流程控制,它们可以将请求映射到类,并且将类与 相关联。框架的控制器在内部使用这些映射将控制转移到特定的类的实例。 的工作流程采用框架开发应用系统时,在应用启动时就会自动地加载并初始化,此时将会从文件读取配置信息,并把它们存放到各种对应的配置对象中。当接受到一个客户请求时,将执行如下流程:()检索与用户请求匹配的实例,如果不存在,控制器直接将请求转发给或静态页面;如果有对应的,并且这个有一个相应的 ,被实例化并用请求的

29、数据来填充其属性,然后保存在中,以备其它对象或调用。()控制器根据的配置信息将请求切换到具体的,对应的相关的 的信息也一起发送给类的()方法。() 的()方法返回一个对象,控制器再通过该对象来进行转发工作。() 根据业务处理的不同结果返回一个相应的目标响应对象给总控制器,这个目标响应对象可以对应一个具体的页面或者是另外一个。()总控制器根据业务功能返回的目标响应对象(多数情况下,该响应目标是一个页面),将请求转换到该目标响应对象中,进一步将结果页面展现给用户。 框架实现模型实质上就是 的基础上实现的一个模式框架,设计模式为构建可扩展、可重用的体系结构打下了很好的基础,该设计模式需要用户将自己的

30、代码抽象出来,把项目在一定的程度上分解为表示,逻辑和控制三部分,每部分之间的关系相对较小,以便使得软件结构更加灵活,并具有较好的可重用性和可扩展性。在框架中,模型一般有实现业务逻辑的或组件构成,控制器由和来实现,视图由一组文件构成,实现的框架如图所示。 图 实现的模型是组织的一个项目,提供了一个实现架构的高度自动化的方式,作为一个的框架,对、和都提供了对应的实现组件:()控制器():控制器的作用是从客户端接收请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在中功能由和对象构成。是设计模式的决策控制部分,也是框架的核心。它根据把消息形式的用户请求转换成相应的应用程序的动作。还负责用

31、相应的请求参数填充(通常称之为),并将其传给对应的动作类(通常称之为)。动作类来实现核心商业逻辑,它可以访问或调用,最后动作类指向相应的文件,最终生成相关的视图。包括一组基于配置的对象,每个对象实现了一个请求到一个具体的部分中处理器对象类之间的点到点的映射。中有对象的名字和地址的描述,当有请求传入时,它把请求的路径映射到的地址,并把请求传给那个类。类也包括一些程序中可能的唯一的信息,例如本地变量,特定环境数据,或者。()模型():表示应用程序的状态和业务逻辑。系统中的部分从概念上可以分为两类:系统的内部状态和改变系统状态的动作。为部分提供了和对象,所有的处理器对象都是程序开发者从的类派生的子类

32、,并对其中主要的方法进行覆盖。处理器对象封装了具体的业务处理逻辑,处理具体的业务逻辑操作,并且把响应提交到合适的组件以产生响应。提供的组件对象,可以通过定义属性描述客户端表单数据。我们可以从它派生子类的对象,利用它可以实现对客户端的表单数据的良好封装和支持,相应的处理器对象可以直接对它的表单数据进行读写,而不再需要和、对象进行数据交互,通过组件对象实现了对和之间非持久性数据交互的支持。()视图():视图是用户看到并与之交互的界面。应用中的部分是通过技术实现的。提供了自定义的标签库,通过使用这些标签定义的表单可以和部分中的的映射,完成对用户数据的相关封装,同时还可以使用这些标签来丰富页面。 框架

33、开发的优缺点是一个优秀的基于的应用框架,现在己经越来越广泛的运用于各种企业平台之上。在程序开发中有自身的优缺点,具体表现在以下几个方面:()具有模型所有的特点和优点,简化了基于模型的应用程序的开发。()允许开发人员使用文件来配置很多默认的框架。()它提供了一个灵活的机制来处理异常,而且提供了一个方便的方法对应用程序的信息进行国际化。()开源项目发展较快,但代码、设计变动较大,利用不当会对系统的维护和升级不利。()框架主要是针对表示层设计的,对后端的逻辑层的支持不强。应用系统的开发,很多时候业务逻辑的处理都会是和后端的数据库进行操作,然而只为视图、控制器提供了现成的框架,对于模型提供框架支持。如

34、果直接使用该框架进行开发,就需要直接在用户的业务逻辑中嵌入代码,这样能够加快程序开发,但是会造成业务逻辑实现和关系数据库的访问实现的直接耦合,一旦数据库的列或相关属性发生一些简单的改变,都会导致大量源代码的修改,这个问题可以通过采用或结合等第三方工具来解决。对框架进行不同的扩充,就可以得到符合很多设计要求的框架。 数据持久技术与在采用了技术的框架中,简化了层的开发,实现了应用程序的显示逻辑和业务逻辑的分离,使应用程序更趋模块化,应用程序更加容易维护。这种应用程序的基本架构是()( )。为了进一步地提高代码的可复用性和可维护性,提高开发效率,需要一个更加有效的架构。因为大多数的应用程序都涉及到的

35、数据库操作,通常数据库表会很多而且关系复杂,如果使用访问数据库将会使得编程过程复杂化,进而带来的是大量的维护工作,特别是层与层之间的耦合性大,表格属性的变动将极大的影响代码的维护,因此需要有一种方便通用的方案来解决这个问题。这里将采用对象关系映射( )的数据持久化技术来简化编程的复杂度,目前实现对象关系映射也已经有一些比较成熟的工具,如,等。本文主要应用:在中,不需要太多的代码,它能够将对象映射到关系数据库中的行,不需要编写复杂的语句,开发架构也就变成 ,毫无疑问使用实现持久层是一种有效的选择,它可以大大减少操作数据库的工作量,并且使得系统更加易于维护。 数据持久技术简介当前的应用程序中应用的

36、数据主要有文件、对象数据库、关系型数据库等,其中关系型数据库的应用最为广泛,具有很高的可靠性和可扩展性,支持强大的查询检索功能:面向对象的设计是应用一些同时具有属性和行为的对象来实现的符合人们认识习惯的编程技术。关系数据库和面向对象技术在现今的很多大型应用中都有广泛地应用,将这两者结合起来将会出现更加复杂和高效的软件系统,然而很明显面向对象设计使用的对象范例与关系数据库使用的关系范例之间存在着“阻抗不匹配”。对象范例基于软件工程的一些原理耦合、聚合和封装,而关系范例则基于数学原理。两种不同的理论基础必将导致各自有不同的侧重点,对象范例侧重于从包含数据和行为的对象中构建应用程序,而关系范例则主要

37、侧重于对数据的存储。但是,随着面向对象语言的快速发展应用和关系型数据库的成熟,出现了这样一个矛盾:数据库是关系型的,以记录的格式来存储数据;编程语言是面向对象的,数据以对象的形式存在并被应用程序访问。数据持久层的提出就是在对象关系数据库之间提供一个成功的映射解决方案,尽可能弥补这两种差异。现今在项目中使用的实现数据持久层的方法有三种:一就是将语句嵌入相关的业务逻辑实现类中,这样做虽然会加快开发速度,经常使用于小型的应用系统中,但它也会使程序的维护和扩张非常困难,所以这种做法很常见却并不是个好的选择;另一种是将语句封装到独立的类中,这种做法并没有改善以上的设计,只是将可能会在未来改动的语句集中到

38、单独的类中;最后一种就是将数据库表映射为对应的对象类,这样就实现了面向对象的开发设计,也会使程序的维护和扩展变得更加容易。语言有很多种数据持久化的实现方式,如 ,和,但相比较来说比较有效的应该是 技术,它给以上两者之间提供了一个很好的过渡层,实现了面向对象的设计思想,能很好解决“阻抗不匹配”的问题,并且很快就得到了广泛地应用。目前,是基于。 实现数据持久技术的比较成熟且得到广泛应用的框架,利用该框架来实现数据持久化,会更加有利于系统的维护和移植。 的概述和特点概述是一种很好的( )映射工具,支持使用各种思想如:,等实现的对象。它可以直接映射大部分的而不需要做任何修改,即使修改最多也就是在对应的

39、里面加上一些私有访问方法;可以将一个用户定义的多个实例映射到一张表的同一行;还可以用代理模式简化载入类的过程。对于使用和手工操作数据库来说,使用,可以大大减少操作数据库的工作量。因此使用它,既可以用来在应用程序中取代大部分代码,也可以很方便地整合到系统中作为持久层框架。使用数据库和配置文件数据来给应用程序提供相应的持久化服务和持久化的对象( )。通过简单地设置配置文件和创建每个数据库表的映射文件,可以省去大量复杂的编程,可以支持种数据库,同时它也支持连接池应用。的特点()是的轻量级的对象封装,它是一个独立的对象持久层框架。的特点主要是简单、易用、强大、灵活而且速度够快。可以代替的编程应用的场合

40、,例如应用程序中访问数据库部分的代码,模型中接入数据库时的访问代码,甚至可以是里面的访问数据库的代码。另外,拥有自己的功能强大的查询语言 (),与非常相似,基于,但它提供了更加面向对象的封装。()不同于 。 由容器处理大部分的数据完整性、资源管理和并发性功能,因此开发人员只需要关注业务逻辑和数据处理。从软件整体的框架来看,不能用于完全替代 。和 都为程序员实现了透明的持久性,而且程序员都不需要关心太多的技术细节。另外也为我们提供了更灵活的事务管理机制,使用来管理事务,而 则将事务管理委派给了容器。虽然具有自己的事务管理,但是实际上它的事务管理是对 的封装,或者是对 的封装,也就是上面提到的,是

41、对的轻量级对象封装。值得注意的是的事务管理更加灵活,它可以在 和 之间进行选择,默认情况下将使用 。() 是一个和密切关联的框架,的兼容性只与驱动和数据库有关系,而与程序或者 没有任何关系。()灵活的对象系映射方法,可以实现各种不同类型的映射,而且具有简单易于操作的接口和丰富的资源配置文档,这些都使得应用程序的开发更加简单和快捷。持久化框架的作用在软件开发过程中引入成熟的持久化实现框架,大大提高了数据库访问层的开发效率,具体表现在以下几个方面:()可以减少乏味代码的编写。持久层框架封装了数据持久层的很多相关的技术细节,例如事物管理、数据库连接管理、语句的生成等,使得开发人员可以避免重复的编程,

42、将精力投入到业务逻辑具体实现中去。()更加面向对象的设计。持久层框架是建立在面向对象的设计思想之上的,而( )是持久层框架的基本特性,也是实现面向对象设计的关键技术。为系统面向对象的设计的实现提供了更加自然的实现方式,可以通过将系统中的 自动映射到各个数据库表,从而在编码过程中只需利用面向对象的方法来处理的相关属性,而无须对 中的字段进行分别处理。()可以保证更好的性能。持久层框架提供了优秀的性能优化机制,如内置的数据库连接池支持、缓存、数据缓存等。这些对于上层架构完全透明的优化机制的综合使用大大提高了系统的性能。()更好的可移植性。基于的跨平台特性,开发的软件系统可以在不同的操作系统之间切换

43、,但由于数据库之间的差异,系统在数据库平台之间移植并不太容易实现。而持久层框架由于其设计上的良好隔离,提供了对不同数据库的良好支持,只需简单地修改其配置文件中的数据库的属性参数,即可实现底层数据库的切换,更好地提高了系统的可移植性,也更好地保护了己有的人力和资源投入。 框架的应用 是一个开源框架,它由 创建。它是为了解决企业应用开发的复杂性而创建的。使用基本的来完成以前只可能由完成的事情。然而,的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何应用都可以从中受益。传统应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致的应用没有真正实现 及 的承诺。作为开

44、源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。致力于应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,并不想取代那些已有的框架,而与它们无缝地整合。简单来说,是一个一个轻量级的控制反转()和面向切面()的容器框架:()轻量:大小与开销两方面而言都是轻量的。完整的框架可以在一个大小只有多的文件里发布。并且所需的处理开销也是微不足道的。此外,是非侵入式的:典型地,应用中的对象不依赖于的特定类。()控制反转:通过一种称作控制反转()的技术促进了松耦合。当应用了,一个对象

45、依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为与相反像从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。()面向切面:提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计()和事务管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。()容器:包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个如何被创建基于一个可配置原型(),你的可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,不应该被混同于传统的重量级的容器,它们经常是庞大与笨重的,难以使用。()框架:可以将简单的组件配置、组合成为复杂的应用。在中,应用对象被声明式地组合,典型地是在一个文件里。也提供了很多基础功能(事务管理、持久化框架集成等等)。所有的这些特征使编程更干净、更可管理、并且更易于测试的代码。它们也为中的各种模块提供了基础支持。 日志机制是和联合推出的一个应用系统日志管理工具,利用它的可以方便的管理和操作日志。应用程序通过来输出不同级别的日志信息。它能够在适当的时候关闭一些调试信息输出以不影响其他人的调试。这种能力的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号