已阅读5页,还剩89页未读, 继续免费阅读
(计算机应用技术专业论文)基于spring的选煤厂质量控制系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 摘要 煤炭在中国的能源体系中占有非常重要的地位,而选煤是提高煤炭质量的有 效技术手段。为了提高选煤厂的生产质量管理效率,提出了基于s p r i g 的选煤厂 质量控制系统。 系统采用面向对象的软件分析,设计和测试技术,分别从需求分析,系统和 数据库设计,软件测试等几个方面对整个系统的设计和实现过程做了全面地阐述, 并详细介绍了在s p r i n g 架构下进行应用开发的程序设计技术。系统整合了当今流 行的轻量级j 2 e e 开源软件作为技术架构,表示层采用s t r u t s 框架,业务层采用 s p r i n g 框架,而持久层采用了h i b e r n a t e 框架。这样的架构设计使得各个模块层上 的变化尽可能少的影响其它模块,提高系统的扩展性和可维护性。 借助s p r i n g ,s t r u t s ,h i b e r n a t e 框架在系统开发上的优势,设计并实现了选煤 厂质量控制系统。该系统能录入选煤厂日常生产过程中的各项检查数据,实现生 产数据的快速分析处理;可以通过质量控制图、直方图对选煤厂的生产质量进行 分析,也可以通过生产数据的全面图形化对比发现生产过程中的问题并进行生产 改进,还能进行质量预警。系统开发完成后,经过全面测试,验证了质量控制系 统的各项功能,系统界面友好,操作简单,结果准确。 图4 3 参5 5 关键词:s p r i n g ;选煤厂;质量控制;h i b e r n a t e ;面向对象 中图分类号:t p 3 11 5 2 安徽理工大学硕士学位论文 a b s t r a c t c o a lo c c u p i e sav e r yi m p o r t a n tp o s i t i o ni nc h i n a se n e r g ys y s t e m ,a n dc o a l c l e a n i n gi sa l le f f e c t i v et e c h n o l o g yt oi m p r o v ec o a lq u a l i t i e s i no r d e rt oi m p r o v et h e p r o d u c t i o ne f f i c i e n c yo fc o a lp r e p a r a t i o np l a n t , t h i sp a p e rp r e s e n t saq u a l i t yc o n t r o l s y s t e mo fc o a lp r e p a r a t i o np l a n tb a s e do ns p r i n g u s i n go b j e c t - o r i e n t e ds o f t w a r ea n a l y s i s ,d e s i g na n dt e s t i n gt e c h n o l o g yt or o u n d l y d i s c u s st h ew h o l es y s t e md e s i g na n di m p l e m e n t a t i o np r o c e s sf r o ms o m ea s p e c t sl i k e r e q u i r e m e n ta n a l y s i s ,s y s t e ma n dd a t a b a s ed e s i g n , s o f t w a r et e s t i n g ,a n ds oo n , a tt h e s a m et i m e ,p r o g r a m m i n gt e c h n i q u eo fa p p l i c a t i o nd e v e l o p m e n tb a s e do ns p r i n gw a s i n t r o d u c di nd e t a i l s y s t e ma r c h i t e c t u r ee m p l o y sp o p u l a ro p e n - s o u r c el i g h t w e i g h tj 2 e e t e c h n i c a l ,p r e s e n t a t i o nl a y e ru s i n gs t r u t sf r a m e w o r k , b u s i n e s sl a y e ru s i n gs p r i n g f r a m e w o r k , a n dp e r s i s t e n c el a y e ru s i n gh i b e r n a t ef r a m e w o r k t h i sa r c h i t e c t u r ed e s i g n a l l o w se a c hm o d u l el a y e rc h a n g e sa sl i t t l ea sp o s s i b l eo nt h ei m p a c to fo t h e rm o d u l e s , i m p r o v es y s t e me x t e n d a b i l i t ya n dm a i n t a i n a b i l i t y b yv i r t u eo ft h ea d v a n t a g e so fs p r i n g ,s t r u t sa n dh i b e r n a t ef r a m e w o r kf o rt h e s y s t e md e v e l o p m e n tt od e s i g na n di m p l e m e n t a t et h ec o a lp r e p a r a t i o np l a n tq u a l i t y c o n t r o ls y s t e m t h es y s t e mc a ni n p u tp r o d u c t i o np r o c e s sd a t aa n da n a l y s i st h o s ed a t a r a p i d l y , p r o v i d ep r o d u c t i o nq u a l i t yc o n t r o la d v i s eb yo b s e r v eq 砌i t y - c o n t r o l c h a r ta n d h i s t o g r a m p r o d u c tp r o b l e mc a nb ef o u n db yc o m p r e h e n s i v eg r a p h i c a lc o m p a r i s o n b a s e do np r o d u c t i o nd a t aa n di m p r o v ei t a n o t h e rf u n c t i o nt h es y s t e mp r o v i d e di se a r l y w a r n i n go fq u a l i t y u p o nc o m p l e t i o no fs y s t e md e v e l o p m e n t , af u l l yt e s th a sb e e n c o m p l e t e dt ov e r i f ys y s t e mf u n c t i o n s ,t h er e s u l ts h o w st h a tt h es y s t e mu s e r - f r i e n d l y , s i m p l i f yw o r k sa n da c c u r a t e f i g u r e4 3r e f e r e n c e5 5 k e y w o r d s :s p r i n g ;c o a lp r e p a r a t i o np l a n t :q 砌i 够c o n t r o l ;h i b e r n a t e ;o b j e c t e d o r i e n t e d c h i n e s eb o o k sc a t a l o g :t p 31 1 i i 插图清单 插图清单 2 1 s p r i n g 模块图7 2 2h i b e r n a t e 体系结构图8 2 - 3m v c 组件模型的关系和功能1 0 2 - 4s t r u t s 体系结构图1 l 3 - 1 系统功能模块图1 4 3 - 2 系统用例图1 6 3 - 3 日常数据处理用例图1 6 3 - 4 质量管理系统状态图1 7 3 5 系统整体结构图1 9 3 6 表示层总体结构图2 0 3 7 表示层顺序图2 1 3 - 8 视图层框架2 2 3 - 9 业务层流程图2 3 3 - 1 0 持久层流程图2 4 3 - 1l 域对象获取流程图2 5 4 1e m p l o y e e _ t a b l e 表结构3 3 4 2 m a n a g e m e n t _ t a b l e 表结构3 4 4 3e q u i p m e n tt a b l e 表结构3 4 4 - 4t i m et e a mt a b l e 表结构3 5 4 - 5c o a lm u dt a b l e 表结构3 6 4 6f m a l _ h i g h _ c o a l _ t a b l e 表结构3 7 4 7f m a lm i d d l ec o a lt a b l e 表结构3 8 4 - 8f l o a tc o a lt a b l e 表结构3 9 4 9g r a v i t y _ s u s p e n d _ l i q u o r _ t a b l e 表结构4 0 4 1 0g r a v i t y l _ c o a l _ t a b l e 表结构4 1 4 1 1g r a v i t y 2 _ c o a l _ t a b l e 表结构4 2 4 1 2i n s p i s s a f i o n 表结构43table 4 一1 34 1 3p r o d u c t _ w e t _ t a b l e 表结构4 4 4 1 44 1 4r a wm a t e r i a lc o a lt a b l e 表结构4 5 4 1 5f i n a lh c o a l _ d a y _ t a b l e 表结构4 6 i x 图图图图图图图图图图图图图图图图图图图图图图图图图图图图图图 安徽理工大学硕士学位论文 图4 1 6f m a lh e o a lm o n t ht a b l e 表结构4 7 图4 - 1 74 - 1 7f m a lh c o a ly e a rt a b l e 表结构4 8 图5 - 1 表示层结构图5 8 图5 2s t r u t s - c o n f i g x m l 结构图6 1 图5 - 3 登录成功页面6 2 图5 4 质量控制页面6 3 图5 - 5 按时间查看一6 4 图5 6 按时间查看二6 5 图5 - 7 查询结果6 5 图5 - 8 粗精煤泥质量控制图7 1 图5 - 9 直方图效果图7 2 图5 1 0t o m c a t 欢迎界面8 0 图5 - 1 l 系统登录界面8 l x 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及 取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方以外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 塞徼理王太堂或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并 表示谢意。 撇名:粹吼学位日 学位论文版权使用授权书 本学位论文作者完全了解塞徽理王太堂有保留、使用学位论文 的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属于 塞邀堡王太堂学校有权保留并向国家有关部门或机构送交论文的 复印件和磁盘,允许论文被查阅和借阅。本人授权安徽理工大学 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存、汇编学位论文。( 保密的学位 论文在解密后适用本授权书) 学位论文作者签 导师张胁毛 孚鳓期砰缈日 鳓期:垆6 月夕日 1 绪论 1 1 课题研究背景 l 绪论 软件技术发展到今天,软件规模不断扩大,复杂度日渐升级,开发人员面临 的问题也越来越多,解决方案也百花齐放。设计者或者开发人员如何将新的设计 或者开发建立在以往工作的基础上,复用以往成功的案例也越来越困难。因此, 人们越来越意识到软件重用技术的重要性,设计模式和框架应运而生。框架是可 重用的、半完成的应用程序,可以用来产生专门的定制程序【l j 。开源软件的兴起, 使得框架更是层出不穷【2 3 】。架构是软件系统从整体到部分的最高层次的划分,一 般由多个不同领域的框架组成。一个成功的软件需要有一个成功的架构,但软件 架构的建立是一个复杂而又持续改进的过程,软件人员不可能对每个不同的项目 做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案。 如何在众多的框架中选择建立适合企业应用的架构,并且怎样让各个应用层 无缝连接? 如何整合框架以便让各个层以一种松散耦合的方式彼此作用而不用管 底层的技术细节? 这给软件人员提出了挑战和机遇。框架运行在相同的机器上,期 望从相同的设备输入信息然后再输出到相同的显示设备,并且存储数据到相同的 硬盘设备。作为开发人员都习惯于使用这些可以覆盖应用开发同一性的工具包和 开发环境构架,在这些公共基础上的应用框架可以为开发人员提供能为产品提供 可重用服务的基础架构。框架可以提供一系列具有以下特征的骨架组件:首先,它 们已经很好的应用在其它程序上;其次,它们随时可在下一个项目中使用;最后, 它们可被开发组织的其它团队使用【3 】。如果构建框架,在完成时就要理解它,但 是在开发人员被融入之前将花费很长的时间。若要购买,还得学习它,在开发人 员可以用它工作之前也要花费很长时间。因此对于使用框架时是构建还是购买没 有所谓正确的答案。但许多开发者都会同意这一点,像s t r u t s 这样的框架能提供 比从头开始开发更显著的投资回报,特别是对于大型项目来说删。s t r u t s 是m v c 架构技术的一种具体实现,它是一种符合m v c 范例的j s p 开发技术,是对j s p 开发技术的继承和发展,包含了丰富的标记库和独立于该框架工作的实用程序类。 由于s t r u t s 给w e b 应用带来了良好的层次划分,现在s t r u t s 己经成为用j a v a 创建 w e b 应用的一个最流行的框架工具【2 5 1 。目前一些大型厂商也开始在j 2 e e 集成开 发工具中嵌入s t r u t s 的支持。 安徽理工大学硕士学位论文 s t r u t s 的目标是为了减少在运用m v c 设计模型来开发w e b 应用的时间,它 将可以完成其中一些繁重的工作 2 6 1 。若想混合s e r v l e t 和j s p 的优点来建立可扩展 的应用,s t r u t s 是一个不错的选择。 h i b e r n a t e 作为一种开放源代码的对象关系映射框架,实现了对j d b c 的轻量 级对象封装,恰好满足了这个时代潮流的需求。h i b e r n a t e 是按照l g p l 许可证发 布的开放式源代码应用程序,它是“用于j a v a 的超高性能的对象决系持久性和查 询服务 2 1 - 2 3 1 。应用h i b e r n a t e 可以使得j a v a 程序员可以方便的用对象编程的思 想将持久性对象映射到关系数据库,而不必花费大量的开发时间去更新和维护复 杂的数据持久层,降低了j 2 e e 架构应用软件开发的难度和复杂度,提高j a v a 应 用软件的开发效率,进而使j a v a 的企业级应用开发更加容易、灵活、强大。 s p r i n g 是一个解决了许多在j 2 e e 开发中常见问题的强大开源框架。它提供 了管理业务对象的一致方法并且鼓励对接口编程而不是对类编程的良好习惯。 s p r i n g 通过i o c 依赖注入、a o p 应用、面向接口编程,来降低业务组件之间的祸 合度,增强系统扩展性 2 4 1 。s p r i n g 由一系列模块组成,比如反转控制容器,面向 切面,m v c 模型,持久层,数据访问对象和远程调用。这一系列的模块之间相 互关联很少,很多模块都可以独立使用。开发人员可以选择一个模块,一些模块, 或者更多的s p r i n g 模块进行开发 2 0 1 。 1 2 国内外研究概况 s 砸n g 是j a v a 平台上的一个开源应用框架。它的第一个版本是由r o dj o h n s o n 发布的。s p r i n g 框架首次在2 0 0 3 年6 月的a p a c h e2 0 的使用许可中发布。s p r i n g 的一个最大的目的就是使j 2 e e 开发更加容易【1 6 1 。同时,s p r i n g 之所以与s t r u t s 、 h i b e r n a t e 等单层框架不同,是因为s 两n g 提供致力于提供一个以统一的、高效的 方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯 的体系。可以说s 研n g 是一个提供了更完善开发环境的一个框架,可以为 p o j o ( p l a i no l dj a v ao b j e c t ) 对象提供企业级的服务。 相对于传统的基于e j b 的j 2 e e 企业开发来说,最初几个版本的s p r i n g 和e j b 相比还有所不足,比如在事务管理,j m s ,j m x ,j c a 等方面,e j b 3 就领先一步。 不过,s p r i n g 在最近的几个版本中已经迎头赶上。到s p r i n 9 2 5 为止( 目前最新版 本) ,其在j m s ,j m x ,j c a 支持已经相当不错,可以说传统e j b 能够做的,现 在s p r i n g 也可以做到。 在j a v a 社区里,s p r i n g 已经成为e j b 模型之外的另外一个选择甚至是替代品 一2 1 绪论 而广为流行。从2 0 0 4 年到2 0 0 7 年这四年时间以来,s p r i n g 取得了相当辉煌的成 就,不但将e j b 2 赶进历史,而且牢牢确立了s p r i n g 作为j a v a 企业应用开发的主 流地位。 这几年除了s p r i n g 框架自身不断完善和延伸到传统应用领域,围绕在s p r i n g 周围的第三方框架也是越来越丰富,虽然说e j b 3 在a n n o t a t i o n 方面有些独到的优 势,在一些传统领域,还领先于s p r i n g ,但就总体来说,e j b 3 为核心的j 2 e e 5 0 规范很难和现在的s p r i n g 相匹敌了【1 7 1 。 b s ( b r o w s e r s e r v e r ) 结构是随着i n t e m e t 技术的兴起而兴起的。它是一次性 到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式( 比如 l a n ,w a n ,i n t e r n e t i n t r a n e t 等) 访问和操作共同的数据库;它能有效地保护数据 平台和管理访问权限,同时,由于所有的数据都是放在服务器的数据库上的,因 此数据的安全性得到了最大限度的保证。目前,b s 架构的软件涉及到很多领域, 包括e r p ,电子政务,电子商务,网上银行,论坛等等,几乎包括了与我们生活 息息相关的各行各业。 1 2 研究内容 基于s p r i n g 的选煤厂质量控制系统的主要内容是选煤厂日常生产过程中检测 数据的处理,如对同一生产过程不同时间段的数据对比,对某一生产过程利用直 方图或者质量控制图进行质量控制等。根据基于s p r i n g 的选煤厂质量控制系统的 功能划分,本课题的研究内容主要包括如下几个模块: 1 用户管理模块。该模块主要实现用户信息的管理。 2 数据录入模块。该模块主要实现选煤厂生产过程中日常检查数据的录入。 日常检查数据包含了从入厂原煤、生产过程及到最后生产出的最终产品的各项不 同检测数据。 3 质量管理模块。该模块是本系统的主要模块,包含了绝大部分功能。主要 有以下几个分模块: 1 ) 按时间查看数据:可以对某个生产流程的不同时间段的数据进行查看,也 可以对几个不同时间段的数据进行对比。 2 ) 按检测项目查看:和按时间查看功能比较类似,但重点有所不同,突出的 是检测项目。 3 ) 按班组查看:可以查看每道生产工序的班组检查数据。和上面两个不同的 是,本模块的数据是该班组的检查数据,而上面两个模块使用的都是根据三个班 一3 安徽理t 大学硕士学位论文 组数据计算得出的日平均数据。 4 ) 按设备查看:该模块可以选择按设备方式查看,来比较设备的产品质量变 化情况,以确认设备是否存在问题。 5 ) 质量控制:该模块通过质量控制图和直方图的方式来呈现生产数据。通过 对这两种图的观察,可以对产品质量进行动态分析,发现产品质量的变化,判别 产品质量变化的趋势,发现和及时消除生产中的问题。同时,通过直方图,还可 以找出数据的平均值,了解数据的离散程度和分布规律。 6 ) 质量预警:该模块可以对当前生产过程数据进行分析,得出产品质量变化 的大概趋势,发出质量预警。 4 设备管理模块:由于生产过程中会不停的增加新的生产设备,因此需要将 这些设备入库。 另外,数据安全性,系统响应速度也是本课题的一个研究内容。 1 3 研究意义 由于s p r i n g 相对来说还是一个较新的事物,在国内的应用才刚刚起步,现 在基于j a v a 的j 2 e e 企业开发主要还是以重量级容器开发e j b 为主。而使用重 量级容器开发e j b 有很多的缺点,比如代码依赖与e j b 代码不能在e j b 容器之 外工作,不同的产品有不同的部署过程,不宜通用等。而使用s p r i n g 来进行开 发完全能避免这些问题,还能缩短软件开发的周期。本课题是基于s p r i n g 的应 用,如果能成功,将为企业软件开发提供一个新的可选手段,具有较好的理论指 导和实践意义。 众所周知,能源是社会和经济发展的重要物资基础。我国是世界上少数几个 以煤为主要能源的国家之一。煤炭是不洁净的能源,而且我国的煤炭资源同国外 相比有着不同的特点,主要表现是难选煤多,高灰、高硫煤的比重大。煤炭的生 产和利用是对大气污染、酸雨等区域性环境问题以及气候变化等全球问题的主要 影响因素1 8 1 。其次我国煤炭储量有8 0 集中在华北和西北,而7 4 的煤炭消耗在 东南及沿海一带,造成6 0 的煤炭需要运输,占铁路货运量的4 0 。由于未经 洗选的煤炭中含有大量的研石,在运输中,造成极大的人力、物力的浪费。因此, 高效选煤是煤炭工业生产中提高产品质量必不可少的环节,是综合利用资源、节 约能源和环境保护的有效途径,也是我国2 1 世纪可持续发展战略中洁净煤技术 的重要组成部分。选煤厂生产是一个复杂的过程,生产流程复杂、管理环节多、 数据的统计、分析工作量大。如何根据工厂的实际产品质量情况对生产及时进行 1 绪论 正确的调整,对提高选煤厂生产效率和我国的国民经济建设具有十分重要的意 义。 5 - 安徽理丁大学硕士学位论文 2 框架技术和设计模式 2 1 s p r i n g 框架介绍 2 1 1 s p r i n g 简介 s p r i n g 是一个开源框架,由r o dj o h n s o n 创建,在他的著作 :j 2 e e 设计开发 编程指南里进行了阐述。它是为简化企业级系统开发而诞生的。s p r i n g 可以用 简单的j a v a b e a n 来实现以前那些只有e j b 才能实现的功能。任何j a v a 开发系统 都能够从s p r i n g 的简单、易于测试和松散耦合的特性中得到好处。s p r i n g 的核心 是一个实现了控制反转( i o c ,i n v e r s i o no fc o n t r 0 1 ) 模式的轻量级容器,s p r i n g 的目标是实现一个全方位的整合框架,在s p r i n g 框架下实现多个子框架的组合, 这些子框架之间彼此可以独立。s p r i n g 最为人重视的另一方面是支持a o p ( a s p e c t o r i e n t e dp r o g r a m m i n g ) 。 s p r i n g 具有如下的几个特点【1 4 】: 1 、轻量:从大小与开销两方面而言s p r i n g 都是轻量的。完整的s p r i n g 框架 可以在一个大小只有1 m b 多的j a r 文件里发布。并且s p r i n g 所需的处理开销也 是微不足道的。此外,s p r i n g 是非侵入式的,s p r i n g 应用中的对象不依赖于s p r i n g 的特定类。 2 、控制反转:s p r i n g 通过一种称为控制反转( i o c ) 的技术促进了松耦合。当 应用了i o c ,对象被动地传递它们的依赖而不是自己创建或者查找依赖对象。可 以理解为j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ,j a v a 命名和目录接t a ) 的反转 一对象不是从容器中查找它的依赖类,而是容器在实例化对象的时候主动将它的 依赖类注入给它。 3 、面向切面:s p r i n g 对面向切面编程提供了强大的支持,通过将业务逻辑从 系统服务( 例如日志与事物管理) 中分离出来,实现了内聚开发。系统只负责业务 逻辑,而不负责系统其他问题。 4 、容器:s p r i n g 是一个容器,他包含并且管理系统对象的生命周期和配置。 可以通过配置来实现类是否实现单键模式。 5 、框架:s p r i n g 实现了使用简单的组件配置组成一个复杂的系统。在s p r i n g 中,系统中的对象是通过x m l 文件组合起来的。而且s p r i n g 提供了很多基础功 能( 如事务管理、持久层集成) ,这样使开发人员能够专注于开发应用逻辑。 6 2 框架技术和设计模式 2 1 2s p r i n g 框架 s p r i n g 框架由七个核心模块组成,这七个模块提供了企业级开发所需要的一切。 图2 1 为s p 血g 模块图【1 4 1 。 1 、c o r e 包是框架的最核心部分,并提供依赖注入( d i ,d e p e n d e n c yi n j e c t i o n ) 特性来使你可管理b e a n 容器功能。这里的基础概念是b e a n f a c t o r y ,它提供 f a c t o r y 模式来消除对程序性单例的需要,并允许你从程序逻辑中分离出依赖关 系的配置和描述。 2 、构建于b e a n s 包上c o n t e x t 包,提供了一种框架式的b e a n 访问方式,和 y n - d i 注册比较像。c o n t e x t 包的特性得自b e a n s 包,并添加了文本消息的发送, 通过比如资源串,事件传播,资源装载的方式和c o n t e x t 的透明创建,如通过s c r v l c t 容器。 3 、d a o 包提供了j d b c 的抽象层,它可消除冗长的j d b c 编码和解析数据库 厂商特有的错误代码。该包也提供了一种方法实现编程性和声明性事务管理, 图2 1s p r i n g 模块图 f i g 2 1d i a g r a m o f s p r i n gm o d e l 不仅仅是针对实现特定接口的类,而且对所有的p o j o 。 4 、o r m 包为流行的关系一对象映射a p i s 提供了集成层,包括 d o ,h i b e r n a t e 和i b a t i s 。通过o r m 包,你可与所有s p r i n g 提供的其他特性相结合来使用这些 对象关系映射,如前边提到的简单声明性事务管理。 5 、s p r i n g 的a o p 包提供与a o p 联盟兼容的面向方面编程实现,允许你定义, 如方法拦截器和切点,来干净地给从逻辑上说应该被分离的功能实现代码解耦。 一7 安徽理工大学硕十学位论文 使用源码级的元数据功能,你可将各种行为信息合并到你的代码中,有点象n e t 的a t t r i b u t e 。 6 、s p r i n g 的w e b 包提供了基本的面向w e b 的综合特性,如m u l t i p a r t 功能使 用s e r v l e t 监听器的c o n t e x t 的初始化和面向w e b 的a p p l i c a t i o nc o n t e x t 。 当与 w e b w o r k 或s t r u t s 一起使用s p r i n g 时,这个包使s 研n g 可与其他框架结合。 7 、s 研n g 的w e bm v c 包提供了面向w e b 应用的m o d e l v i e w - c o n t r o l l e r 实现。 s p r i n g 的m v c 实现不仅仅是一种实现,它提供了一种d o m a i nm o d e l 代码和w e b f o r m 的清晰分离,这使你可使用s p r i n g 框架的所有其他特性,如校验 s p r i n g 框架的功能可以用在任何j 2 e e 服务器中,大多数功能也适用于不受管理 的环境。s p r i n g 的核心要点是:支持不绑定到特定j 2 e e ) 眼务的可重用业务和数据访 问对象。毫无疑问,这样的对象可以在不同j 2 e e 环境( w e b 或e j b ) 、独立应用程序、 测试环境之间重用。 2 2 s p r i n g 框架与h i b e r n a t e 的集成 2 2 1h i b e r n a t e 简介 h i b e r n a t e 是一个纯j a v a 的对象关系映射和持久性框架,它允许用x m l 配置文件 把普通j a v a 对象映射到关系数据库表【2 1 1 。使用h i b e r n a t e 能够节约大量项目开发时 间,因为整个j d b c 层都由这个框架管理。这意味着应用程序的数据存取层位于 h i b e r n a t e 之上,完全从底层数据模型中抽象出来的。h i b e r n a t e 适合开发人员的开发 进程,无论是从头开始一个设计还是使用遗留的数据库系统。h i b e r n a t e 可以帮助 产生s q l ,使开发人员从手动处理结果集和对象转换中解脱出来,使应用程序对所 有的s q l 数据库都是可移植的。h i b e r n a t e 的体系结构图如图2 2 所示 2 2 1 。 h i b e r n a t e 提供了强大、高性能的对象到关系型数据库的持久化服务。利用 h i b e r n a t e ,开发人员可以按照j a v a 的基础语义( 包括关联、继承、多态、组合以及j a v a 的集合架构) 进行持久层开发。h i b e r n a t e 提供的h q l ( h i b e r n a t eq u e r yl a n g u a g e ) 是面 向对象的查询语言,它在对象型数据和关系型数据库之间构建了一条快速、高效、 便捷的沟通渠道 2 2 1 。比起其他类似的对象关系映射技术( t o o ,实体b e a n 、内部开发 等) ,h i b e r n a t e 有许多优势:它是免费的、开源的,已经成熟到良好的程度,并得 到广泛应用。 8 2 框架技术和设计模式 a p p l l c e u o n h i b e r n a t e 一一 d a t a b a s e 图2 - 2h i b e r n a t e 体系结构图 f i g 2 - 2d i a g r a mo fh i b e r n a t es y s t e ms m m t u r e 2 2 2s p r i n g 与h i b e r n a t e 的集成 s p r i n g 对h i b e r n a t e 的支持是第一级的,整合了许多i o c 的方便特性,解决了许 多典型的h i b e r n a t e 集成问题。框架对h i b e r n a t e 的支持符合s p r i n g 通用的事务和数据 访问对象( d a o ) 异常层次结构。s p r i n ga o p 提供了几个方面,可以为j a v a b e a n 声 明事务。例如,t r a n s a c t i o n p r o x y f a c t o r y b e a n 是个方便的代理类,能够拦截对现有 类的方法调用,并把事务上下文应用到事务b e a n 。通过s p r i n g d a o 抽象,能够将具 体的d a o 技术的异常,比如h i b e m a t e e x c e p t i o n 、s q l e x c e p t i o n 转换成 d a t a a c e e s s e x e e p t i o n 为根的异常处理体系中。针对h i b e r n a t e 的s p r i n g d a o 抽象类是 h i b e r n a t e d a o s u p p o r t ,开发者需要为它配置h i b e m a t e s e s s i o n f a c t o r y ,通过其子类, 开发者可以获得h i b e m a t e t e m p l a t e ,当然,也可以手工配置h i b e m a t e t e m p l a t e ,目 前s 砸n g 框架借助于s 删m gi o c 和s p 血g a o p 对h i b e m 眦进行最为有效的集成口3 1 。 2 3 s p r i n g 框架和s t r u t s 的集成 2 3 1m v c 设计模式 m v c 设计是j 2 e e 平台上的一个设计模式,是英文m o d e l v i e w - c o n t r o l l e r 的缩 9 一 安徽理工大学硕士学位论文 写,即把一个应用的输入、处理、输出流程按照m o d e l 、v i e w 、c o n t r o l l e r 的方式进 行分离,这样一个应用被分成三个层一模型层、视图层、控制层图。如图2 3 所示 3 4 1 方法调用 一事件 图2 3m v c 组件模型的关系和功能 f i g 2 - 3m v cc o m p o n e n t m o d e lo fr e l a t i o n sa n df u n c t i o n s 视图( v i e w ) 代表用户交互界面,处于j 2 e e 架构的w e b 层或者说是用户层,通 常是j s p s e r v l e t ,即页面显示部分。m v c 设计模式对于视图的处理仅限于视图上数 据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务 流程的处理交予模型( m o d e l ) 处理。 模型( m o d e l ) 就是业务流程状态的处理以及业务规则的制定,处于j 2 e e 的中间 层,通常用服务端的j a v a b e a n 或者e j b 实现,即业务逻辑部分的实现。业务逻辑的 处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处 理结果。业务模型的设计可以说是m v c 的核心。业务模型还有一个很重要的模型 那就是数据模型。数据模型主要指实体对象的数据保存( 持久化) 。我们可以将这个 模型单独列出,所有有关数据库的操作只限制在该模型中。 控制( c o n t r o l l e r ) 可以理解为从用户接收请求,将模型与视图匹配在一起,共 同完成用户的请求,也处于j 2 e e 架构乳b 层,通常用s e r v l e t 来实现,即页面显示的 逻辑部分实现。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发 器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制 层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不 处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求 的视图返回给用户。 因此,一个模型可能对应多个视图,一个视图可能对应多个模型。模型、视 1 0 2 框架技术和设计模式 图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视 图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些 变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图, 导致显示的更新。这实际上是一种模型的变化传播机制。 2 3 2s t r u t s 框架简介 s t r u t s 是实现m v c 的理想框架,对应于m v c 的三个层次,s t r u t s 都有相应的实 现技术。图2 _ 4 显示y s t r u t s 的一个体系结构 3 0 l 。 图2 - 4s t r u t s 体系结构图 f i g 2 - 4d i a g r a mo fs t r u t ss y s t e ms t r u c t u r e l 、视图:视图主要是由j s p 建立。s t r u t s 自身包含有一组标记库,这是s t r u t s 的精华之一。灵活运用它们可以大大提高开发的效率。 2 、模型:s t r u t s 中的模型由一系列的b e a n 来实现,可以自己定义业务逻辑b e a n 。 s t r u t s 本身还提供了一种非常有用的b e a n ,i l p f o m b e a n ,它可以在模型和视图之间 保存数据。 3 、控制器:s t r u t s 中的控制器主要是它自身提供的a c t i o n s e r v l e t ,而a c t i o n s e r v l e t 的核心就是s t r u t s - c o n f i g x m l 配置文件,它包含t 所有页面导航的定义。a c t i o n s e r v l e t 接受请求,并根据配置文件中的定义将控制转移至l j h t t p s e r v l e t r e q u e s t 。控制器查看 输入事件,并将请求分派给某个a c t i o n 类。s t r u t s c o n f i g x m l 中的配置信息就转换成 一组a c t i o n m a p p i n g ,将其放2 x , a c t i o n m a p p i n g 容器中a c t i o n s e r v l e t 通过e x c u t e 0 方法 将a c t i o n m a p p i n g 传递给a c t i o n 类。这样就使a c t i o n 可访问用于控制流程的信息。 对于采用s t r u t s 框架的w e b 应用,在w e b 应用启动时就会加载并初始化 a c t i o n s e r v l e t a c t i o n s e r v l e t 从s t r u t s - e o n f i g x m l 文件中读取配置信息,把他们存放到 各种配置对象中。当a c t i o n s e r v l e t 接收到一个客
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年备考二建工程施工管理 自测提分题库加答案
- 2026年保育师二级(技师)资格考试理论知识全真模拟考试卷及答案(共十五套)
- 鲁教版七年级英语下册期末试卷及答案
- 鲁教版七年级道德与法治暑假衔接试卷及答案
- 河南青桐鸣联考2026-2027学年高三上学期11月期中地理+答案
- 发热机制课件
- 发热产品的课件
- 2026年车工三级职业技能真题及答案解析
- 室外工程分部验收记录
- 中标候选人公示备案流程
- 急性胸痛鉴别诊断专家共识(2026版)
- 辐射安全考试题及答案库核子仪
- 新版《检验检测机构资质认定评审准则》(2023版)内部审核检查表示例
- 2025安徽星瑞齿轮传动有限公司招聘2人笔试历年参考题库附带答案详解
- 整本书阅读《平凡的世界》课件
- 精密与特种加工技术(第3版) 课件全套 第1-10章 绪论 - MEMS及纳米加工技术
- 保龄球大战大班健康活动
- 岗位安全风险辨识课件
- 市政工程设施养护维修估算指标
- 比亚迪esg研究报告
- 职业规划人物访谈采访问题三十条
评论
0/150
提交评论