




已阅读5页,还剩64页未读, 继续免费阅读
(计算机应用技术专业论文)web国际化通用框架研究及在大冬会系统中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨t 程大学硕十学位论文 摘要 互联网的发展推动了全世界的交流,需要开发出满足不同地区语言、文 化、生活习惯要求的w e b 应用,因此,软件的国际化已成为必须要考虑并解 决的问题。然而,传统软件多使用本地化的方法实现多语言版本。每增加一 种语言都需要对源程序重新修改,耗费大量人力,难以保持软件源代码的统 一,给软件的维护、升级带来极大的问题。 为了在短时间内,规范高效的构建出国际化的w e b 应用,需要设计一种 易于理解和维护的国际化开发框架。作者旨在总结灵活、高效的国际化方法, 将国际化相关的共性操作抽取出来进行一致性处理,生成一种基于j 2 e e 架构 的且具有可移植性和易用性的w e b 应用国际化通用框架。 遵循j 2 e e 体系结构和m v c 模式,本文提出的国际化通用框架由两部分组 成。第一部分是u i 国际化框架,它以s t r u t s 2 框架为基础,实现表示层和控 制层的静态数据国际化;第二部分是动态元素国际化框架,它以s p r i n g 为基 础,实现业务逻辑层和d a o 层的动态数据国际化。最后借助s p r i n g 的i o c 技术,将两部分整合在一起,以减少模块间的耦合度,从而提高开发效率。 本文提出的国际化通用框架已应用于第2 4 届世界大学生冬季运动会综 合信息查询系统。部分关键代码可以不加修改直接应用在w e b 系统中,可以 简化系统国际化的实现过程。 关键词:w e b 应用:国际化;框架;a n n o t m i o n ;i o c ;a o p 哈尔滨工程大学硕士学何论文 - - - l t i i i i i i i i i i i i i i i i i i i i i 宣i i i i i i i i i i i i i i i i i i i i 葺i i i i i 葺i i 萱i i i i i i i a b s t r a c t t h ed e v e l o p m e n to fi n t e m e tp r o m o t e st h ew o r l d sc o m m u n i c a t i o n w h i c h c a u s et h en e e d so fc u s t o m e r sw h ol i v e i nd i f f e r e n tc o u n t r y sw i t hd i f f e r e n tl o c a l l a n g u a g e s ,c u l t u r e sa n dh a b b i t ss h o u l db es a t i s f i e db yt h ew e ba p p l i c a t i o n ,s o s o t f - v a r e si n t e r n a t i o n a l i z a t i o nh a sb e c o m eap r o b l e mt h a ts h o u l db ec o n s i d e r e d a n ds o l v e d h o w e v e r ,s o f t w a r e sm u l t i l a n g u a g ee d i t i o ni st r a d i t i o n a l l yr e a l i z e db y t h el o c a l i z a t i o nm e t h o d w h e n e v e ran e wl a n g u a g ee d i t i o ni sr e q u i r e d ,t h es o u r c e c o d em u s tb em o d i f i e d ,w h i c hb r i n ge n o r m o u st r o u b l ei nt h es o f t w a r e s u n i f i c a t i o n ,m a i n t e n a n c ea n du p d a t e i no r d e rt oe n s u r et h ec o n s t r u c t i o no fi n t e m a t i o n a l i z e dw e b a p p l i c a t i o nc a n b eb u i l tr e g u l a r l ya n de 瓶c i e n t l yi nas h o r tt i m e w h i c hc o u l dm a k et h ef r a m e w o r k e a s i l yu n d e r s t o o d a n dm a i n t a i n e d f l e x i b l ea n de f f i c i e n t i n t e m a t i o n a l i z i n g m e t h o d sa r es u m m a r i z e db yt h ea u t h o r c o m m o ni n t e m a t i o n a l i z a t i o no p e r a t i o n s a r ee x t r a c t e dt o g e n e r a t e aj 2 e e - b a s e dg e n e r a li n t e m a t i o n a l i z a t i o nw e b a p p l i c a t i o nf r a m e w o r kw i t hp o r t a b i l i t ya n de a s yu s i n g f o l l o w i n gj 2 e ea r c h i t e c t u r ea n dm v cp a t t e r n ,t h eg e n e r a lil8 nf r a m e w o r k p r o p o s e di nt h ep a p e ri sc o m p o s e do ft w op a r t s o n ei su ii n t e r n a t i o n a l i z a t i o n f r a m e w o r k i tb a s e so ns t r u t s 2f r a m e w o r k t h ei n t e r n a t i o n a l i z a t i o no fs t a t i cd a t a i sr e a l i z e di nb o t he x p r e s s i o na n dc o t r o ll a y e r t h eo t h e rp a r ti s d y n a m i cd a t a i n t e r n a t i o n a l i z a t i o nf r a m e w o r k i tb a s e so n s p r i n g f r a m e w o r k t h e i n t e r n a t i o n a l i z a t i o no fd y n a m i cd a t ai sr e a l i z e db yi ti nb o t hb u s i n e s sl o g i cl a y e r a n dd a t aa c c e s sl a y e r f i n a l l y a l lt h ec o m p o n e n t sa r ea s s e m b l e dw i t ht h e a i do f s p r i n gi o c ,s ot h em o d u l ec o u p l i n gc a n h er e d u c e d n l eg e n e r a li n t e r n a t i o n a l i z a t i o nf r a m e w o r kp r o p o s e di nt h ep a p e rh a sb e e n p r a c t i c a l l ya p p l i e di n t ot h e2 4 t hu n v e r s i a d es y n t h e s i z es y s t e m e s s e n t i a lc o d e c a nb e a p p l i e dd i r e c t l y i n t ow e b s y s t e m s , w h i c h m a ys i m p l i f y t h e i m p l e m e n t a t i o no fi t si n t e r n a t i o n a l i z a t i o n k e y w o r d s :w e ba p p l i c a t i o n ;i 18 n ;f r a m e w o r k ;a n n o t a t i o n ;i o c ;a o p 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由 作者本人独立完成的。有关观点、方法、数据和文献的引用已在 文中指出,并与参考文献相对应。除文中己注明引用的内容外, 本论文不包含任何其他个人或集体已经公开发表的作品成果。对 本文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本人完全意识到本声明的法律结果由本人承担。 作者( 签字) :磊自仓童、 日期: 训q 年碉i v - e l l 哈尔滨工程大学 学位论文授权使用声明 本人完全了解学校保护知识产权的有关规定,即研究生在校 攻读学位期间论文工作的知识产权属于哈尔滨工程大学。哈尔滨 工程大学有权保留并向国家有关部门或机构送交论文的复印件。 本人允许哈尔滨工程大学将论文的部分或全部内容编入有关数据 库进行检索,可采用影印、缩印或扫描等复制手段保存和汇编本 学位论文,可以公布论文的全部内容。同时本人保证毕业后结合 学位论文研究课题再撰写的论文一律注明作者第一署名单位为哈 尔滨工程大学。涉密学位论文待解密后适用本声明。 本论文( 口在授予学位后即可口在授予学位1 2 个月后 口 解密后) 由哈尔滨工程大学送交有关部门进行保存、汇编等。 作者( 签字) :哥百筑、 日期: 抛7 年乡月j 扛日 导师( 签字) : 面渤 吖年亏月i 伞日 哈尔滨工程大学硕十学位论文 第1 章绪论 1 1 课题的来源和意义 随着软件国际化的需求越来越大,成功的应用软件都具有中、英、日等 多个语种的版本。对于基于j 2 e e 的系统而言,实现系统的多语言版本已成 为很多w e b 应用不得不解决的问题。 各国家除语言不同外,在日期、数字、货币符号等方面也有很大的差异, 需要开发能够满足不同地区语言、文化、生活习惯要求的软件。软件的国际 化正是解决这一问题的有效途径。 软件国际化是指在软件设计和开发过程中,创建不同语言版本时,不需 重新设计源程序代码的软件工程方法。简单地说,国际化意味着同一个软件 可以面向使用各种不同语言的客户,支持不同的习惯表示方法,满足不同地 区语言、文化、生活习惯要求。 因此设计一种高效、稳定的国际化应用框架,实现规范的国际化软件开 发具有重要意义,也是w e b 应用开发的必然趋势,为此设立本课题进行研 究。 作者从分析软件国际化开发的关键问题入手,提出一个国际化通用框架 的整体解决方案。目标是通过这个国际化通用框架,对国际化资源采取统一 的处理机制,简化和方便开发者的处理逻辑,简化国际化软件的开发、维护 和使用,确保软件支持多语言的扩展特性,减少本地化过程所需要的时间和 精力,降低国际支持成本,提高客户满意度。 该方案已应用于“第2 4 届世界大学生冬季运动会的综合信息查询系统 中,成功地开发了系统的多语言版本,很好地解决了系统的国际化问题。 1 2 国际化研究现状 国际化( i n t e r n a t i o n a l i z a t i o n ,又称1 1 8 n ) ,是指在软件设计阶段就具有 支持多种语言和地区的功能,当需要为软件添加对新语言和国家的支持时无 需修改程序代码【l i 。 哈尔滨t 程大学硕士学位论文 本地化( l o c a l e l i z a t i o n ,又称l l o n ) ,即针对某一地域所支持的编码字 符集、语言和地域习惯为软件建立符合本地要求的信息的过程。 过去,国内外多采用本地化方法实现软件的多语言版本。 本地化和国际化是一组相对应的概念,如图1 1 所示。本地化意味着针 对不同语言、地区的客户开发不同的软件版本;国际化意味着同一个软件可 以面向不同语言、地区,不需要修改源程序就能获得一个符合用户本地的语 言习惯的版本,系统可以根据客户端的系统语言环境进行相应的语言转换。 本地化的w e b 应用 国际化的w e b 应用 图1 1 本地化与国际化 如图1 2 、1 3 所示,分别为传统软件的本地化过程和国际化软件过程。 显然,传统的本地化方法需重新编译源码,不宣于维护,除了耗费大量的人 力、物力外,还难以保持软件源代码的统一,给软件维护、升级带来极大的 问题。 图1 2 传统的本地化方法 小组 图1 3 基于国际化软件的本地化 目前,国内外多采用s t r u t s 轻量级框架实现软件的国际化。它是一个支 2 哈尔滨_ 程大学硕十学位论文 持w e b 应用程序的j a v a 开源框架,它内置了对国际化的支持,不需要用不 同的语言来写w e b 页面,简化了程序员在做国际化时所需的工作。但却没 有解决动态数据的国际化问题。 国内外目前采用的本地化或基于s t r u t s 的国际化方法有其优点,如资源 文件实现静态文本数据和程序代码的分离,只增加新的资源文件,就可以快 捷地对应用做出调整,使它适应新的语言和地区,节省人力,易于扩展、修 改、维护和升级。但也存在以下不足: 1 本地化的软件不宜于维护升级; 2 s t r u t s 虽然对静态数据的国际化有很好的支持,但没有解决动态数据的 国际化问题。 针对以上问题,需要提出一个良好的解决国际化的方案。 1 3 国际化通用框架模型总体设计及优势 针对目前国内外国际化解决方法的不足,新的解决方式应: 1 可以方便快捷地对应用做出调整,使它适应新的语言和地区; 2 系统开发的工作量问题; 如果为每一个语言的版本都开发一套w e b 页面和程序,将会成倍地增 加开发时间和工作量,对于大型系统是不可取的。 3 系统的可扩展性。 因此提出基于j 2 e e 的三层架构( u i 层、逻辑层和持久层) 的国际化总体 框架,如图1 4 所示,并把它分解为u i 国际化框架和业务逻辑国际化框架两个 部分,分别加以实现。所有层次都应遵循u n i c o d e 准则,即内部编码采用 u n i c o d e 标准,b s 架构推荐使用u t f 8 编码。 哈尔滨工程大学硕士学位论文 u i 层 逻辑层 d a o 层 图1 4 基于b s 的国际化应用软件逻辑框架 在软件系统开发中,系统架构的设计与代码的复用始终是至关重要的。 好的设计方案和可复用代码能有效地提高系统开发效率,降低系统开发难 度。在需求的基础上,给出了一个通用的w e b 应用国际化通用框架的实现方 案,如图1 5 所示。 u i 国际化框架动态元素国际化框架 编国 中文盹b 用户k +码 际资 转化源 一 换w e b 应用 oo 叶功 处 国际化数据库 过 能 理 、,一 英文盹b 用户h滤 切器 器 面 l 。j 图1 5w e b 应用国际化实现架构 分层结构是基于b s 架构的j a v a e e 应用程序的标准模式,本框架通过对应 用程序划分层次,可以获得各层清晰的功能和职责,简化代码的实现难度。 4 哈尔滨丁程大学硕七学何论文 该架构分为u i 国际化框架、动态国际化框架两部分。其中为u i 国际化框 架以s t r u t s 2 为基础,实现表示层和控制层的静、动态数据国际化。动态元素 的国际化框架以s p r i n g 为基础,实现业务逻辑层和d a o 层的动态数据国际化。 该国际化通用框架的优势有以下几点。 1 不依赖资源持久化方式; 可使用资源文件或关系数据库存储信息。用关系数据库存储时,不依赖 国际化数据库的实现,无论是单表还是分表,都可以一概而论。 2 国际化功能与业务逻辑解耦; 编程人员可以专注于核心的b o 层的业务逻辑的编写,把国际化通用功能 提取到切面中。不需要考虑国际化的特定国家语言,只需正常的编写源代码 进行数据库操作、对数据库进行访问即可,提高了对数据库进行访问的安全 性,和数据库操作实现的普遍性。 3 坚持以o o p 设计为主,a o p 设计为辅,可缩减代码,节省时间,控制 开发成本; 4 用注解实现对象关系数据库间的一一映射。 它管理j a v a 类到数据库表的映射,通过“标签”最大限度地降低了对特 定数据库厂商的依赖,同时又能优化性能。在j a v a b e a n 中只嵌入注解标签即 可,与国际化有关的代码完全提取到注解的实现b e a n 中,j a v a b e a n 中完全 不使用与国际化相关代码,方便复用和调试。这种动态国际化框架是借助 a n n o t a t i o n 配置实现的o r m 框架,事实上,它是对j d b c 和o r m 的一层较 薄的封装。 还可以附以缓存功能来简化数据库操作,能够将数据缓存在内存中,而 不是每次读操作都请求数据库,将极大地提高整个系统的性能。 框架的具体实现在三章中详细加以介绍。 1 4 大冬会综合查询系统总体介绍 第2 4 届世界大学生冬季运动会是我国首次举办的国际综合性冬季运动 会。本届运动会比赛项目共设1 2 大项,冰上比赛5 大项,雪上比赛7 大项, 总计8 1 小项。国际大体联成员、近5 0 多个国家运动员、教练员、裁判员、 近千名国内外记者,云集在哈尔滨、亚布力、帽儿山比赛场地参加包括开幕 5 哈尔滨t 程大学硕十学位论文 式、闭幕式等内容的各项比赛活动。将在3 个运动员村、大体联官员驻地、 裁判员驻地、新闻中心、记者驻地近2 0 个场所设立几百台计算机查询终端和 触摸屏查询终端,提供电话、传真、互联网接入、无线接入等通信手段,并 建立和开通大冬会官方网站,向全世界提供竞赛信息。 大冬会计算机网络信息处理系统应用软件部分按其性质分为三部分:即 竞赛信息采集及处理软件、赛会管理软件和竞赛信息查询系统软件。 作者主要对竞赛信息查询系统国际化问题进行研究与实现。 竞赛信息查询系统是面向大冬会的参加者、各新闻媒体和所有体育爱好 者的基于i n t e r n e t i n t r a n e t 的公众查询服务系统。该系统可将大冬会所有 信息采集处理系统作为该系统的信息源,通过浏览器服务器结构的应用软 件,提供综合信息查询服务。另外,在一些公众场所综合查询服务系统应能 够提供丰富多彩的有关大冬会及哈尔滨地区的的多媒体信息供查询,通过利 用计算机和网络技术,为用户提供高质量的信息服务,扩大大冬会及哈尔滨 的影响。在主要场馆设置公共多媒体查询终端,提供大冬会所有场馆的赛事 网上直播和相关多媒体资料查询服务。 该查询系统主要包含以下几个功能模块:竞赛成绩查询,奖牌榜查询, 历史成绩查询,历史记录查询,破平纪录查询,运动员信息查询查询。 1 5 论文组织结构 本文的组织结构如下: 第l 章为绪论部分。分析了国际化问题产生的原因,背景和意义、给出 了国际化通用框架模型总体设计以及论文的结构安排。 第2 章总体介绍了构建国际化通用框架的相关理论及核心技术。首先介 绍了j a v a 对国际化的实现原理。其次介绍了j 2 e e 体系结构。再次介绍了 s t r u t s 框架及其对国际化的支持。最后介绍了依赖注入和面向切面编程技术 及a n n o t a t i o n 注解原理。为搭建通用框架做出充分的理论和技术准备。 第3 章根据总体设计,分别设计和实现u i 国际化框架、动态元素国际化 框架。对u i 元素国际化框架,用自定义编码拦截器对其加以完善改进;对动 态元素国际化框架,用a n n o t a t i o n 注解及a o p 切面对框架进行设计和实现。 第4 章将国际化通用框架模型实际应用于“第2 4 届世界大学生冬季运动 6 哈尔滨工程大学硕士学位论文 会的综合信息查询系统”中,进一步验证了该框架在基于j 2 e e 的w e b 应用中 的有效性和可行性。 最后是结论、参考文献、作者攻读硕士学位期间发表的论文与技术成果 及致谢部分。 7 哈尔滨t 程大学硕七学何论文 第2 章国际化通用框架相关概念及核心技术 2 1j a v a 国际化原理概述 j a v a 语言“一次编写,到处运行”,说明它己具有国际化和本地化的特 征和a p i 。j a v a 语言内核基于u n i c o d e ,提供了对不同国家和不同语言文字 的内部支持,具有平台无关、可移植性好等优点,并且提供了强大的类库, 而且j a v a 核心的字符就是基于u n i c o d e 编码的,因此,用j a v a 实现软件界面 国际化,具有无可比拟的优势1 2 1 。 j a v a 程序的国际化思路是将程序中的标签、提示等信息放在资源文件 中,每个程序需要所有支持的国家语言,都必须提供对应的资源文件。其资 源文件是k e y v a l u e 对,每个资源文件中的k e y 是不变的,但v a l u e 则随不 同国家飞语言而变化。 j a v a 在其核心库中提供了丰富的支持国际化的类和资源包,j a v a 程序的 国际化主要通过如下三个类完成f 3 1 。 i a v a u t i l l o c a l e :对应一个特定的国家区域及语言环境1 4 i 。 i a v a u t i l r e s o u r c e b u n d l e :对应用于加载一个资源包。 i a v a t e x t m e s s a g e f o r m a t :用于将消息格式化。 其继承关系如图2 1 所示。 图2 1j a v a 国际化类图 其中各类提供的主要功能如下: 1 l o c a l e 类:用于表征语言和地区,为其他类提供包含用户本地化 的信息,如语言和国家。l o c a l e 的命名规则: 8 哈尔滨下程大学硕七学位论文 例如“z hc n g b 2 3 1 2 ”中,z i l 表示中文,c n 表示中华人民共和国, g b 2 3 1 2 表示使用的字符集为g b 2 3 1 2 。 2 r e s o u r c e b u n d l e 类:即j a v a 资源包,可以包含多个消息资源文件,每 个消息资源文件存放和一种l o c a l e 相对应的本地化消息文本。这些资源包括 文本域或按钮的l a b e l 、状态信息、图片名、错误信息和网页标题等。 例如:指定资源文件名称为t e s t b u n d l e ,而指定的l o c a l e 是c h 烈e s e , 那么最适合匹配的类名称为t e s t b u n d l ez hc n c l a s s ,最佳匹配资源文件名称 为t e s t b u n d l ez hc n p r o p e r t i e s 。如果该类或资源文件没有找到,系统会查 找近似匹配的类或属性文件。 3 m e s s a g e f o r m a t 类:可以定义一个模式,允许在运行时用指定的参数 来替换掉消息字符串中的占位符部分。 例如,定义了一个占位符来代替信息可变部分,得到模式: e r r o r r e q u i r e d f i e l d = t h e 0 f i e l di sr e q u i r e dt os a v e l 0 占位符被第一个参数替换, 1 ) 占位符被第二个参数替换,依此类推。 在运行时,该类的f o r m a t ( ) 方法可以把参数 0 ) 替换为真正的动态文本。 2 2j 2 e e 技术 j 2 e e 是一种利用j a v a 平台来简化企业级解决方案的开发、部署和管理 相关复杂问题的体系结构,可以推动企业应用开发和部署。使得部署在j 2 e e 平台上的应用系统可以获得较高的安全性、可扩展性、可伸缩性、灵活性等。 它作为企业级应用的架构经过了多年的考验并得到了广泛的应用【5 1 。 j 2 e e 提供了许多体系结构的选择,总体上分为分布式体系结构、非分布 式体系结构两大类【6 l 。对于w e b 应用,所有构件只运行在单个j v m 上,所 以采用非分布式系统。j 2 e ew e b 容器基于j a v a 语言实现o o 设计。 j 2 e e 具有业务构件接口的w e b 应用的三层结构如图2 2 所耐7 1 。 9 哈尔滨工程大学硕十学佗论文 i i ii if i i 萱宣暑i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i 置宣i i i i i i i i i i i i i i 图2 2 基于j 2 e e 的w e b 应用体系结构图 1 企业信息系统( e i s ) 层:即持久层,由j 2 e e 应用完成所必须访问的 企业资源所组成。 2 中间层:即业务逻辑层,含有应用的业务对象,并调停对e i s 层资源 访问。 3 用户接口( u i ) 层:将中间层业务对象提供给用户,并接收客户请求, 返回动态的w e b 页面。 2 3s t r u t s 框架及国际化实现原理概述 s t r u t s 在j s pm o d e l 2 的基础上实现了m v c 模式【8 1 。m v c 模型视图控 制器( m o d e l v i e w c o n t r o l l e r ) 把应用程序的输入、处理、输出分开,三个核 心模块分别负担不同的任务。 模型( m o d e l ) :应用程序的主体部分。模型表示业务数据和业务逻辑, 一个模型可以为多个视图提供数据,提高了应用的可重用性。 l o 哈尔滨工程大学硕士学何论文 视图( v i e w ) - 应用程序中用户界面相关的部分。视图向用户显示数据, 并能接收用户的输入数据,但它并不进行任何实际的业务处理。 控制器( c o n t r o l l e r ) 根据用户请求,调用相应的模型组件处理请求,然 后调用相应的视图显示模型返回的数据。 s t r u t s 框架就是基于m v c 模式,实现了功能模块和显示模块的分离,还 提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性【9 1 。 对国际化的支持除了依赖于j a v a 国际化组件l o c a l 、r e s o u r c e b u n d l e 类 以外,还来自于s t r u t s 提供的资源包m e s s a g e r e s o u r c e s 。 s t r u t s 框架初始化时,把l o c a l e 实例存储在s e s s i o n 范围内。任何一个 w e b 组件都可以通过对l o c a l e 的判断访问相应的资源文件。如图2 3 所示, 当用户的l o c a l e 为英文时,s t r u t s 框架就会向用户返回来自于 a p p l i c a t i o n e n p r o p e r t i e s 文件的文本内容;当用户的l o c a l e 为中文时,s t r u t s 框架就会向用户返回来自于a p p l i c a t i o n - c h p r o p e r t i e s 文件的文本内容。 w e b 客。p :i 一 a p p l i c a t i o n _ e n l o c a l 。“ i p r o p e r t i e s s t r u t s 框架 w e b 拈霭:p z 1 a p p l i c a t i o n c h l o 。8 i e 2 。h i p r o p e r t i e s 图2 3s t r u t s 框架根据用户的l o c a l e 来选择资源文件 s t r u t s 框架实现国际化的优点: 1 独立的属性文件实现w e b 页面和程序代码和静态国际化文本数据的 分离; 2 新的语言中只增加新的资源文件,就可方便快捷地对应用做出调整, 节省大量人力物力,易于扩展、修改、维护和升级。 缺点: 1 每一次匹配检索都曾加了系统运行时的开销: 2 虽然对静态数据的国际化有很好的支持,但没解决动态数据的国际化 问题。 作为一个开放源代码的应用框架,s t r u t s 已逐渐成为w e b 应用框架的 哈尔滨工程大学硕十学位论文 事实上的标准,然而基于s t r u t s 的应用开发在中文显示方面仍存在一定问题。 本文全面研究了s t r u t s 国际化的实现方法的基础上,用自定义拦截器对其扩 展完善,提出了一套实用的解决方案。 2 4 依赖注入和面向切面编程技术概述 面向对象的程序设计的目的就是管理程序中各部分的依赖关系,从而实 现降低耦合度,实现复用的目标,框架的发展正是随着这样的需求发展起来 的。 i o c 和a o p 框架目前正成为框架发展的主流技术,已经实现i o c ,a o p 的优秀的轻量级框架之一就是s p r i n g 框架。它从数据访问框架o r m1 1 0 】到i o c 容器,再到w e b 层的m v c 框架、a o p ,基本包括了整个开发过程中的所 有东西,可以为快速的构建企业级的应用程序提供很好的服判1 1 】。下面,就 介绍s p r i n g 框架的两大核心技术 2 4 1 依赖注入 i o c ,i n v e r s i o no fc o n t r o l ,控制反转,是一种将组件依赖关系的创建和 管理置于程序外部的技术,这种在运行时注入依赖的行为方式,使得i o c 后 来被称为另一个含义更明确的名字:依赖注入( d e p e n d e n c yi n j e c t ,d i ) 1 1 2 。 该模式是基于o o 设计的好莱坞法则:d on o tc a l lu s ,w ew i l lc a l ly o u 1 3 】。 也就是说,所有的组件都是被动的,所有的组件初始化和调用都由容器负责。 i o c 框架就是将对象的创建和获取提取转移到外部容器,由外部容器提 供需要的组件。将类与类之间的关系将交由容器处理,一个类在需要调用另 一个类时,只要调用另一个类在容器中注册的名字就可以得到这个类的实例。 i o c 框架最基本功能是能将实例在运行期间动态地注入到对象中去,一 般框架的实现要完成以下几个基本的功能: 1 组件的注册、注销和生命周期管理; 2 组件的属性设置,构造参数的设置; 3 组件的依赖关系分析、自动组装、实例生成; 4 同时支持工厂方法、单例、原型等实现。 s p r i n g 框架的l o c 容器通过反射【1 4 i 和内省机制很优雅的实现了对 1 2 哈尔滨t 稃大学硕+ 学位论文 j a v a b e a n 的统一管理,极大的提高了程序的可移植性和健壮性。使用d i 而 非传统方法具有如下好处: 1 减少“粘合”代码; 2 依赖外置化; 3 在统一的容器中管理依赖; 4 提高可测试性; 5 鼓励良好的程序设计。 总之,“针对接口编程,而不是实现”是开发者普遍达成的识。使用i o c 框架,能够帮助开发者管理不同的组件,从而有效地降低软件开发问题的复 杂度、减小维护的代价。 2 4 2a o p 面向切面编程 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 ,中文就是面向切面的编程。 它的核心思想是“将应用程序中的商业逻辑同通用服务进行分离” 1 5 l 。 传统的( o b j e c t o r i e n t e dp r o g r a m m i n g ,面向对象编程) 技术解决了软件系 统中角色划分的问题,通过模块化把一系列问题抽象成对象,把一个庞大的 系统拆分成各个模块6 1 。但是,当需要为分散的、不具有继承层次的对象引 入公共行为时,o o p 则无法避免代码重复、陷入了困境,比如一个系统中有 几十个或几百个数据库查询的函数,每个地方都要求把数据库查询的语句记 录下来,在o o p 技术中除了为每个函数增加记录日志的功能没有更好的办 法。面对这种重复劳动o o p 技术束手无策。于是,一种新的编程思想a o p 应运而生,a o p 技术通过方法拦截的方式解决了这个问题,在每个方法调用 前后调用公共行为【1 7 l 。 a o p 技术利用一种横切技术剖解封装的对象内部,并将那些影响了多个 类的公共行为封装到一个可重用模块,便于减少系统的重复代码,降低模块 间的耦合度,有利于未来的可操作性和可维护性【1 8 i 。从本质上讲,a o p 是用 一种松散耦合的方式来实现独立的关注点,然后组合这些关注点来实现最终 系统。 使用“横切 技术,a o p 把软件系统分为两个部分:功能关注点和系统 关注点。业务处理的主要流程是功能关注点,公共行为的重用部分是系统关 哈尔滨工程大学硕士学位论文 注点。系统关注点的发生在功能关注点的多处,而各处都基本相似。比如权 限认证、日志、事务处理。a o p 的作用在于分离系统中的各种关注点,将功 能关注点和系统关注点分离开来【1 9 1 。 实现a o p 的技术,可以采用静态织入的方式,涉及以下概念。 1 a s p e c t :切面 切面是一个横跨多个核心逻辑的功能,或称之为系统关注点,例如,日 志记录、事务管理、安全检查等【2 0 】。将散落在各处的公共代码集中起来,放 在一个模块中,这个模块就是一个切面。 2 j o i n p o i n t :连接点 连接点就是定义在应用程序流程的何处插入切面的执行。 3 p o i n t c u t :切入点 一组连接点的集合。例如,一个切面需要在调用每个以q u e r y 开头的方法 时执行,就可以用正则表达式( * q u e r y 幸) 来表示这一组连接点,为一个切入点。 4 a d v i c e :增强 在特定连接点上执行切面中的动作,相当于对原始对象的功能做了增强。 5 i n t r o d u c t i o n :引介 为已有的j a v a 对象动态的增加新的接口。 6 w e a v i n g :织入 将切面整合到程序的执行的流程中 7 i m e r c e p t o r :拦截器 实现增强的一种方式。 8 t a r g e to b j e c t :目标对象 真正执行核心逻辑的对象。有了a o p 后,重复代码被集中到切面中,目 标对象被大大简化了。 9 a o p p r o x y :a o p 代理 a o p 代理就是客户端持有的引用。由于a o p 代理实现了与目标对象同 样的接口,因此,客户端感觉不出使用这两者有何区别,但却获得了动态增 加的额外功能。 理清3 个对象( 目标对象、切面和a o p 代理) 的关系。目标对象就是自 己编写的去除了重复代码的核心类,切面则是集中了重复代码的模块,然后 1 4 哈尔滨工程大学硕十学位论文 在s p r i n g 的i o c 容器中以合适的方式装配起来,构成一个a o p 代理,交给 客户端使用【2 。 对象提供了一种代理的方式来控制对原对象的访问。比如访问对象 o b j e c t 时,实际访问的是代理对象p r o x y , 然后代理对象再把请求委托给实 际对象o b j e c t ,这就提供了一种实现a o p 的思路,在把请求委托给实际对 象前后可以运行其他的功能,从而实现对方法的拦截【2 2 1 。如图2 4 所示。 国 r e q 日匡孕l 图2 4 代理模式调用序列图 总之,a o p 作为o o p 编程思想的一种补充,在继承o o p 基础之上很好 地解决了o o p 所面临的困难,实现功能关注点和系统关注点的松耦合,程序 员只需要把精力放在最关心的业务逻辑上,把通用的模块放到系统关注点中, 通过分离出与系统核心业务实现无关的模块,减少模块间的耦合度从而提高 开发效率和代码的复用性。a o p 使得需要编写的代码量大大缩减,节省了时 间,控制了开发成本1 2 3 l 。 2 5a n n o t a tio n 注解概述 a n n o t a t i o n 是j d k 5 0 的新功能,是j a v a 语言的一部分。下面将全面说 明a n n o t a t i o n 的使用方法、定义方式、分类【2 4 l 。 1 a n n o t a t i o n 原理 是与程序相关的元数据的标注【”1 。它是一种接口,能够通过j a v a 反射 a p i 的方式提供对其信息的访问,不影响程序代码的执行。 a n n o t a t i o n 可用于维护附属文件的信息,既便利且可以减少错误【2 6 i 。 1 5 哈尔滨工程大学硕士学位论文 配置文件的作用是对软件进行解耦,以解决模块之间高耦合的问题。 a n n o t a t i o n 以更加通用的方式更加细分了前x m l 配置,实现了0 0 解耦原则, 同时作为一种接口应用,可以让代码更加优雅,能体现主接口和次接口的主 次之分,用于描述与类维护相关联的次要方面的信息。 2 a n n o t a t i o n 定义及声明 a n n o t a t i o n 类型定义了a n n o t a t i o n 的名字、类型、成员默认值【2 7 1 。一个 a n n o t a t i o n 类型可以说是一个特殊的j a v a 接口。当通过j a v a 反射a p i t 2 8 1 访问 a n n o t a t i o n 时,返回值将是一个实现了该a n n o t a t i o n 类型接口的对象,通过 访问这个对象能方便的访问到其a n n o t a t i o n 成员。 a n n o t a t i o n 类型声明于一般的接口声明类似,区别只在于i n t e r f a c e 关键 字前面使用” ”符号。下面是一个简单的a n n o t a t i o n 类型声明: p u b l i c i n t e r f a c em y a n n o t a t i o n i n ti d o ; s t r i n gm e s s a g e ( ) ; ) a n n o t a t i o n 是一种修饰符,能够如其它修饰符( 如p u b l i c 、s t a t i c 、f i n a l ) 一样使用【2 9 1 。a n n o t a t i o n s 由” + a n n o t a t i o n 类型+ 带有括号的成员值列表”组 成1 3 0 1 。这些成员的值必须是编译时常量。 下面是一个使用了m y a n n o t a t i o n 的方法声明: m y a n n o t a t i o n ( i d = 2 8 6 8 7 2 4 , m e s s a g e = ”e n a b l et i m e - t r a v e l ” ) p u b l i cs t a t i cv o i dm y m e t h o d ( ) 2 6 本章小结 本章对研究涉及到的基础知识进行了概述。介绍了j 越,a 国际化的基本 原理、基于j 2 e e 的w e b 应用体系结构及s t r u t s 框架及其对国际化支持,以 作为本课题一一国际化通用框架的基础架构。对依赖注入、a o p 技术、 a n n o t a t i o n 注解做了不同程度的介绍和分析,以作为本课题实现的理论基础。 1 6 哈尔滨t 程大学硕士学何论文 第3 章国际化通用框架模型的设计与实现 3 1 基于s t r u t s 的u l 国际化框架模型设计与实现 软件国际化最简单的要求,就是用户界面( u i ) 必须能用本地化语言显示。 本节将从以下几个方面实现国际化基本框架: ( 一) 资源文件的实现和加载 使用独立的资源文件存储w e b 页面和程序代码中的静态文本数据,实 现在系统中只有一份源程序,以减少系统开发的工作量。对于每一个语言版 本,和语言相关的内容都保存在相应的、独立的属性文件中,与系统的业务 逻辑模块分离开来。每增加一种语言版本,只需要增加相应的属性文件和少 部分的页面元素即可。 1 资源文件的命名和定义 资源文件的命名采用“默认资源文件名语言国家”的形式,其中语言 代号和国家代号必须采用i s o 定义的标准代号。如中文资源文件名的形式为 “a p p l i c a t i o nz hc n p r o p e r t i e s ”。文件内部由“k e y = v a l u e 对儿组成。 2 资源文件的分类 s t r u t s 提供了4 种加载国际化资源文件的方式1 。 ( 1 ) 全局资源文件 作用范围:整个应用,所有a c t i o n 都可以访问该资源文件。 加载全局的国际化资源文件通过配置s t r u t s c u s t o m i 1 8 n r e s o u r c e s 常量来 实现,如指定全局资源文件的b a s e n a m e 为m e s s a g e r e s o u r c e : 通过这种方式加载国际化资源文件后,应用可以在所有地方取出这些国 际化资源文俐3 扪。 ( 2 ) 包范围资源文件 作用范围:包范
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年酒泉市阿克塞哈萨克族自治县数学三上期末学业水平测试试题含解析
- 2025-2026学年昌黎县三年级数学第一学期期末复习检测试题含解析
- 2024年云南省德宏傣族景颇族自治州三年级数学第一学期期末统考试题含解析
- 2024年新疆维吾尔克拉玛依市数学三年级第一学期期末预测试题含解析
- 2024年江西省上饶市铅山县数学三年级第一学期期末学业水平测试试题含解析
- 人感染H7N9禽流感防控1课件
- 棕色中国风洪朱元璋武大帝课件
- 2025年自考行政管理热点试题及答案
- 2025年执业护士考试重点复习指南与试题及答案
- 2025年护士信息管理试题及答案
- 2025年春季1530安全教育记录主题
- 初中语文教师校本培训内容
- 2024年国家公务员考试行测真题附解析答案
- 2024年医美行业痛点分析研究报告
- 云安全事件案例
- DB64-266-2018:建筑工程资料管理规程-151-200
- 《兽医产科学》考试复习题库(含答案)
- 中国的国际话语权
- 第04章 CIE标准色度系统
- JGJ120-2012建筑基坑支护技术规程-20220807013156
- 共同办展会合作协议书范文范本
评论
0/150
提交评论