(计算机科学与技术专业论文)基于grails的web应用研究.pdf_第1页
(计算机科学与技术专业论文)基于grails的web应用研究.pdf_第2页
(计算机科学与技术专业论文)基于grails的web应用研究.pdf_第3页
(计算机科学与技术专业论文)基于grails的web应用研究.pdf_第4页
(计算机科学与技术专业论文)基于grails的web应用研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

学位论文版权使用授权书 1 鼎删 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 提供阅览服务,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。 同意学校向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:乖耪l 书 签字日期:乃归年占月2 弓日 导师躲彰它呜 导师签名:纠刁k b 签字日期:反u b 年6 1 月,万日 、刀 l_ili 中图分类号:t p 3 1 9 u d c :0 0 4 9 学校代码:1 0 0 0 4 密级:公开 北京交通大学 硕士学位论文 基于g r a ils 的w e b 应用研究 s t u d yo nw e ba p p l i c a t i o nb a s e do ng r a i l s 作者姓名:穆利伟 导师姓名:朱卫东 学号:0 8 1 2 0 6 0 4 职称:副教授 学位类别:工学学位级别:硕士 学科专业:计算机科学与技术研究方向:数据库理论技术 北京交通大学 2 0 1 0 年6 月 致谢 本论文的工作是在我的导师朱卫东副教授的悉心指导下完成的,朱卫东副教 授严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢两 年来朱卫东老师对我的关心和指导。 朱卫东副教授悉心指导我完成了实验室的科研工作,在学习上和生活上都给 予了我很大的关心和帮助,在此向朱卫东老师表示衷心的谢意。 朱卫东副教授对于我的科研工作和论文都提出了许多的宝贵意见,在此表示 衷心的感谢。 在实验室工作及撰写论文期间,谢倩倩、冯静、胡鹏飞、邱瑛、余金城、付 宇等同学对我论文中的研究工作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢我的家人,他们的理解和支持使我能够在学校专心完成我的学业。 中文摘要 摘要:随着w e b 应用的日益广泛和w e b 开发技术的不断发展,开发者需要一种能够 简化开发过程,降低开发难度,提高开发效率的框架。目前在w e b 开发中人们使用 最多的框架大多数都是基于j 2 e e 平台。但随着需求的多样化,不断加入的各种组 件和逐渐膨胀的x m l 配置管理文件使得j 2 e e 应用框架体系变得臃肿,在开发和运 行速度上都不能满足开发者的需求。 g r a i l s 框架正是为了满足程序员开发和运行速度上的需求而提出的解决方案。 该框架与j 2 e e 应用框架相比在迅速开发和w e b 应用部署方面体现了强大的优势。 g r a i l s 框架自身包含了构建w e b 应用的完整组件,不需要与其它框架整合就能高 效地开发应用程序,从而使开发变得简单而快捷,极大地满足了开发者的需求。 本文简要介绍了g r a i l s 开发框架以及所涉及的关键技术,并着重研究了该框架 的核心体系结构,在与几款经典开发框架比较后,提出了g r a i l s 框架的优缺点, 通过基于g r a i l s 框架在湖北高级人民法院信访案件管理系统的设计与实现论证了 该框架的优越性,并结合实践对其性能上的缺陷提出了改进。 关键词:g r a i l s ;j 2 e e ;开发框架;管理系统 分类号:t p 3 1 9 一一 a b s t r a c t a b s t r a c t :w i t ht h ew i d es p r e a do fw e ba p p l i c a t i o na n dd e v e l o p m e n to fw e b t e c h n o l o g y , an e wf r a m e w o r k , w h i c hc a ns i m p l i f yd e v e l o pp r o c e s s ,r e d u c e d e v e l o p m e n td i f f i c u l t ya n di m p r o v ed e v e l o pe f f i c i e n c y , i sn e e d e d c u r r e n t l y , j 2 e e a p p l i c a t i o nf r a m e w o r ki st h em o s tw i d e l yu s e dw e bd e v e l o p m e n tp l a t f o r r n h o w e v e r , w i t hd e v e l o p e r sd e m a n d s ,j 2 e ea p p l i c a t i o ns y s t e mh a sb e c o m eo v e r s t a f f e db e c a u s eo f c o n t i n u o u s l y a d d e d c o m p o n e n t s a n d g r a d u a l l ye x p a n d e dx m lc o n f i g u r a t i o n m a n a g e m e n tf i l e s t h e r e f o r e ,t h ej 2 e ea p p l i c a t i o ns y s t e mc a nn o tm e e tt h en e e d so f d e v e l o p e r si nd e v e l o p m e n tc y c l ea n dn m n i n gs p e e d g r a i l sf r a m e w o r ki st h ep e r f e c ts o l u t i o nw h i c ha i m st os a t i s f yt h ep r o g r a m m e r s d e m a n d si n d e v e l o p m e n t a n d r u n n i n gs p e e d c o m p a r e dw i t hj 2 e ea p p l i c a t i o n f r a m e w o r k ,g r a i l sf r a m e w o r ks h o w sg r e a ta d v a n t a g e si nd e v e l o p m e n ts p e e da n dw e b a p p l i c a t i o nd e p l o y m e n t g r a i l si t s e l fe n c o m p a s s e st h ew h o l ec o m p o n e n t sf o r c o n s t r u c t i n gw e ba p p l i c a t i o n ,s od e v e l o p e r sc o u l dd e v e l o pw e ba p p l i c a t i o n sw i t h o u t i n t e g r a t i n go t h e rf r a m e w o r k si n t og r a i l s i tm a k e sw e bd e v e l o p m e n tm o r ec o n v e n i e n t a n de f f i c i e n t ,w h i c hg r e a t l ym e e t st h en e e d s o f d e v e l o p e r s i nt h i sp a p e r , g r a i l sd e v e l o p m e n tf r a m e w o r ka n dr e l a t e dk e yt e c h n o l o g yw e r e i n t r o d u c e d a n dc o r ea r c h i t e c t u r eo ft h ef r a m e w o r kw a sm a i n l yr e s e a r c h e d t h o u g h c o m p a r i n gw i t hs e v e r a lc l a s s i cd e v e l o p m e n tf r a m e w o r k s ,s t r e n g t h sa n dw e a k n e s s e so f g r a i l sd e v e l o p m e n tf r a m e w o r kw e r ed i s c u s s e d t h ed e s i g na n da c c o m p l i s h m e n to f p e t i t i o nc a s em a n a g e m e n ts y s t e mf o rh u b e ih i g h e rp e o p l esc o u r tb a s e do ng r a i l s f r a m e w o r kd e m o n s t r a t e ds u p e r i o r i t yo ft h ef r a m e w o r k i na d d i t i o n ,i t s p e r f o r m a n c e d e f e c t sw e r ei m p r o v e db a s e do ne x p e r i e n c e si np r a c t i c e k e y w o r d s :g r a i l s ;j 2 e e ;d e v e l o p m e n tf r a m e w o r k ;m a n a g e m e n ts y s t e m c i 。a s s n 0 :t p 3 1 9 目录 中文摘要i i i a b s t r a c t i v 1 绪论1 1 1研究背景与意义1 1 2国内外研究现状。1 1 2 1 g r o o v y 1 1 2 2g r a i l s 2 1 3本人所做的工作和论文的组织。2 1 4本章小结3 2w 曲应用系统开发框架研究4 2 1w 曲应用框架概述4 2 2传统w e b 应用框架研究4 2 2 1 传统w e b 应用框架概述4 2 2 2 传统w e b 应用框架的缺点6 2 3 基于g r a i l s 的w e b 应用框架研究6 2 3 1g r a i l sw 曲应用框架概述6 2 3 2g r a i l s 优越性体现8 2 3 3g r a i l s 优越同类框架的体现1 l 2 4本章小结1 5 3基于g r a i l s 的业务辅助系统的设计与实现1 6 3 1信访案件管理系统简介16 3 1 1 模块划分1 6 3 1 2 各模块功能介绍1 7 3 1 3 系统架构图2 0 3 1 4 湖北信访案件管理系统不足之处2 1 3 2基于g r a i l s 的湖北信访案件管理系统2 2 3 2 1 信访系统架构2 2 3 2 2 开发环境描述2 3 3 2 3 项目结构图2 3 3 2 4 重要配置文件2 5 3 3总体设计与实现2 6 3 3 1g r a i l sw e b 架构2 6 3 3 2 主要功能模块2 7 3 3 3 来访案件功能模块实现2 7 3 4技术难点3 4 3 4 1g s p 页面处理3 4 3 4 2g r a i l s 中的域类4 0 3 4 3 脚手架( s c a f f o l d i n g ) 4 4 3 4 4g r a i l s 控制器( c o n t r o l l e r ) 4 4 3 5本章小结4 5 4g r a i l sw 曲应用框架优化4 6 4 1g r a i l s 框架的优点4 6 4 2g r a i l s 框架的不足4 6 4 3g r a i l s 应用框架优化4 7 4 4本章小结5 5 5总结与展望5 6 5 1 总结5 6 5 2 展望5 6 参考文献5 8 作者简历6 0 独仓0 性声明。6 l 学位论文数据集6 2 1 绪论 1 1 研究背景与意义 自从有了互联网,开发社区就没有停止过对w e b 技术的争论与探讨。在多 年喧嚣后,w e b 应用也面临着一次深度革新。j 2 e e 由于所具有的开放性、跨平 台性而在w e b 应用开发平台中的地位如日中天,在该平台上各种各样的开发框 架层出不穷。但随着需求的多样化,其结构和内容越来越复杂,设计开发也越来 越困难,需要使用大量的x m l 文件进行配置管理,在应用开发过程中要处处强 调面向对象、分层架构、设计模式等理念,精心抽象自己的设计层次。然而过分 强调开发理念会把思考重心从业务模型转移到技术架构上。其实,充分利用资源, 迅速改进业务才是互联网创业的生存之道。开发者迫切需要能简化开发过程、降 低开发难度、提高开发效率的框架。在这样的背景下,用g r o o v y 语言编写的g r a i l s 框架以其开发快捷、简单易用的特点极大地简化了开发过程,降低了开发成本, 同时较好地兼顾开发和运行效率,近年来逐渐成为w e b 应用开发者关注的焦点。 1 2 国内外研究现状 1 2 1 g r o o v y 不知不觉间,动态脚本语言逐渐繁荣兴盛起来。相对于传统的编程语言,它 们更适用于要求快速实现功能并展示可视化界面,和需求变化较为频繁的中小型 w e b 应用项目。而g r o o v y 就是其中较为年轻的一个分支,其官方网站 ( h t t p :g r o o v y c o d e h a u s o r g ) 给出了关于它的最好定义:g r o o v y 是一种支持j a v a 平台的敏捷动态语言,它从诸如p y t h o n 、r u b y 和s m a l l t a l k 等其它语言那里汲取 了很多特性,并以类似j a v a 的语法将其提供给开发者使用。正如一开始所提到 的,g r o o v y 常被看作是脚本语言,当然它的确能够作为脚本语言相当出色地工 作,但事实上它更加灵活,因此不能简单地归类于此,例如g r o o v y 程序能够被 预编译为j a v a 字节码,能够与其它的j a v a 应用、网络应用整合在一起等。实际 上,无论站在实现的角度还是站在交互的角度上,g r o o v y 都与j a v a 平台紧密地 联系在一起:首先,g r o o v y 的大部分是用j a v a 编写的,其余部分由g r o o v y 本 身来实现;其次,g r o o v y 无缝集成了所有已经存在的j a v a 对象和类库,并通过 减少框架性代码大大缩短了程序员尤其原j a v a 开发者的“痛苦”学习过程。所以 当你使用g r o o v y 编程时,很多情况下都会感觉像是在用一种比较特殊的j a v a 。 1 2 2 g r a i l s 对于如今越来越广泛的w e b 应用需求,j a v a 领域众多既有的w e b 开发框架 已经变得过于复杂而令人望而生畏。庆幸的是随着g r o o v y 的出现,新一代用于 快速开发w e b 应用的框架g r a i l s 应运而生,它大大降低了在j a v a 平台上进行 w e b 开发的复杂度。按照g r a i l s 网站( h t t p :g r a i l s o r g ) 上的介绍,g r a i l s 是一个 开源的w 曲应用程序框架,它利用g r o o v y 语言补充了j a v aw e b 开发的不足, 同时为g r o o v y 带来“按规范编码”的范例。类似于r a i l s 和其它一些框架,g r a i l s 也强调d r y ( d o n tr e p e a ty o u r s e l f ) 和约定重于配置,它尽可能地隐藏了配置详 情,并整合了大量j a v a 业务逻辑,为增删改查操作提供了代码自动生成支架 ( s c a f f o l d i n g ) ;但又不同于它们的是,g r a i l s 是构建在s p r i n g 和h i b e r n a t e 等j a v a 已有成熟技术之上的。 1 3 本人所做的工作和论文的组织 本文正是基于上述背景,希望对这一门全新的框架技术做更深入的研究,并 通过g r o o v yo ng r a i l s 应用的开发来体验敏捷思想在w 曲应用中的渗透,通过深 入讨论、研究其应用及性能上的优化,以期望解决使用g r o o v y o ng r a i l s 框架开 发的系统在环境搭建、开发、部署过程中遇到的瓶颈。 第一章绪论 主要分析论文的研究背景及意义,阐述该技术在国内外的研究现状,通过研 究,得出该技术的发展前景。 第二章w e b 应用系统开发框架综述 从w e b 应用系统的传统开发模式谈起,介绍了当下流行的w e b 开发框架, 并对其优缺点进行了总结,进而引出了本文要讲述的g r o o v yo ng r a i l s 框架。本 章对其中涉及到的关键技术做了简单的介绍,并从整体架构上分层、分模块介绍 了g r o o v yo ng r a i l s 框架,使读者对其有相应的了解。 第三章基于g r a i l s 的业务辅助系统的实现 本章结合已成型的项目基于湖北高级人民法院信访案件管理系统做了更深 入的应用研究,并详细介绍了开发过程中的关键技术、框架选择、顶层配置以及 遇到的问题,并从一个开发者的角度对遇到的问题给予解决方案。 第四章g r a i l sw e b 应用框架优化 2 本章通过结合项目中g r o o v yo ng r a i l s 的应用,提出了此框架技术在实际应 用中与其他开发框架的不同之处,结合实际应用,分析了它的优缺点,并与典型 j 2 e e 框架进行比较,突出其优势。此外,本章最后,对此框架在应用中存在的 性能问题进行了总结,并提出了相应的解决方案。 第五章总结与展望 在本文的最后,详细总结了文章所作的工作,并对g r o o v yo ng r a i l s 框架的 现状与未来进行了分析,展示了其表现出来的新功能、新技术,提出了g r o o v yo n g r a i l s 开发框架的发展前景。 1 4 本章小结 本章首先介绍了本文撰写的背景:g r o o v y 语言编写的g r a i l s 框架是当前互 联网应用的一门先进技术,有着广阔的前景;然后概述了g r o o v y 、g r a i l s 技术的 国内外现状;最后介绍了本人所做的工作和本文的组织结构。 2w e b 应用系统开发框架研究 2 1w e b 应用框架概述 框架( f r a m e w o r k ) 是整个或者部分系统的可重用设计,表现为一组抽象构件 及构件实例之间交互的方法,它规定了应用的体系结构,阐明了整个协作构件之 间的依赖关系、责任分配和控制流程,为构件复用提供了上下文( c o n t e x t ) 关系。 框架是构件技术、软件体系结构研究和应用软件开发三者发展结合的产物。 大多数情况下框架都以一个构件库的形式而存在,但它也只是框架的一个不可或 缺的组成部分。框架的关键在于框架内各对象间的交互模式和控制流模式。 框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系 统的开发周期,提高开发质量。它的最大的好处就是重用性,而面向对象系统获 得的最大的复用方式就是框架,大型应用往往是由多层相互协作的框架而组成。 正因为框架具备代码可重用性的特点,因此从已有的构件库中建立一个应用也会 变得容易的多。目前主流w e b 应用系统开发框架都提供了对数据持久性、事务、安 全性、负载均衡性以及应用集成性问题的较好的解决方案,因此采用框架技术进 行软件开发具备的很多长处是其他开发所不能比拟的: ( 1 ) 代码量的增加,使软件生产效率和质量也得到了提高; ( 2 ) 框架中允许采取快速原型的开发方式; ( 3 ) 有助于项目组成员的协同工作; ( 4 ) 大量的重用降低了开发费用,加快了开发速度,减少了开发人员。参数化 框架使其适应性和灵活性更强。 2 2 传统w e b 应用框架研究 2 2 1 传统w e b 应用框架概述 目前w e b 应用系统开发框架有很多种,尤其是国外的开源社区,基本上不到一 个月时间就会有一种新的w e b 开发框架问世,例如最常被提及的也是最著名的 m v c 开源框架之一的s 加t s ,轻量级框架w e b w o n ,另夕b s p r i n g ,c o c o o n 等。它们 的问世在很大程度上加快了w 曲开发框架发展的速度,它们的性能各有特点,从多 个方面为w e b 应用提供多种服务。下面我们来简单分析一下现有w e b 应用开发框架 4 的一些概况和特点。 ( 1 ) s t r u t s 6 在j a v a 的应用中,s t r u t s 是目前用户群最大、开发商支持最多的开源的w e b 开发 框架。它是a p a c h e 基金会j a k a r t a 项目组的一个开源项目,它将s e r v l e t 2 2 和j s p l 1 标记用作实现的一部分,由一组相互协作的类、s e r v l e t 和j s p 标记组成一个可重用 的系统设计。它有着优美的面向对象设计、清晰的显示逻辑与业务逻辑的分离, 也正因为如此,越来越多的大型w e b 应用系统开发都采用了s t r u t s 开发框架。s t r u t s 应用主要包括三个部分的实现:配置s t r u t s c o n f i g x m l 文件,实现a c t i o n 类和实现一 个视图( v i e w ) 。 但是s t r u t s 框架本身也存在许多的不足之处,例如它上手难度较大,标记库 t a g l i b 需要长时间的学习过程才能熟悉并灵活运用,否则将大大降低开发效率;需 要大量的额外配置并且将c o i l 仃0 1 1 e r 分开,增加了系统的复杂度等等。 ( 2 ) w e b w o r k t 7 】 w 曲w 6 r k 是o p e ns y m p h o n y 组织开发的一款致力于组件化和代码重用的 m v c 模式的j 2 e ew 曲开发框架,目前w e b w o r k 已经分为了x w o r k l 和w 曲w b 舵两 个项目。 x w o r k l 简介灵活,是一个标准c o m m a n d 模式实现并且完全从w e b 层脱离了出 来,而w e b w o r k 2 正是我们要用到的w e b 开发框架,它建立在x w o r k 之上处理h t t p 请求和响应。 w e b w o r k 2 具有诸多优良特性,它是一款灵活的v a l i d a t i o n 框架,允许用户在 x m l 文件中定义验证内容,在运行时通过i n t e r c e p t o r 自动应用,因此完全脱离了 a c t i o n 类;它允许用户在类之间做对象转换( t y p ec o n v e r s i o n ) ;支持表达式语言 o g n l ( o b j e c tg r a p h i c a ln a v i g a t i o nl a n g u a g e ) ,允许动态对象图表遍历和方法执 行,使用v a l u es t a c k 透明访问多b e a n s 属性;支持多视图表示,视图部分可以受用 j s p ,v e l o c i t y ,f r e e m a r k e r ,x m l 等技术;容易和第三方软件集成,包括h i b e r n a t e , s p r i n g ,s i t e m e s h 等。 ( 3 ) j s f 8 】( j a v as e r v e rf a c e s ) j s f 是一种用于构建j a v aw e b 应用程序的标准框架。它提供了一种以组件为中 心的用户界面( u i ) 构建方法,从而简化了j a v a 服务器端应用程序的开发。 j s f ( j a v as e r v e rf a c e s ) 技术为开发基于网络用户界面的j a v a 开发者提供了标 准的编程接 a p i 以及标签库。就像s t r u t s 框架一样,j s f 定义了一套j s f 标签,能够 生成与j a v a b e a n s 属性绑定在一起的h t m l 表单元素。从应用开发者的角度看,两 种框架十分相似,但是j s f 可能会得到更多的支持,因为j s f 是j a v a 的标准。在未来 的发展中,有可能所有的j 2 e e 应用服务器都需要支持j s f 。 ( 4 ) s p r i n gm v c 【9 】 s p r i n g 是一个服务于所有层面的a p p l i c a t i o nf r a m e w o r k ,它提供了b e a n 的基础 配置、a o p 的支持、j d b c 框架的提取、抽象事务的支持等。在某个层面上如果不 需要s p r i n g 支持,就可以不用s p r i r 喀的c l a s s ,也就是说,允许使用它的部分功能。 s p r i n g 是一个轻量级的j 2 e e 应用开发框架,它的轻量级体现在其本身的基础结 构以及对其他应用工具支持和装配能力上。s p r i n gm v c 最显著的特点就是结构清 晰,a c t i o n 准确的称之为c o n t r o l l e r ,c o n t r o l l e r 接收r e q u e s t ,r e s p o n s e 参数,返回 m o d e l a n d v i e w 对象,而在其他的w e b 框架中,a c t i o n 返回值一般都只是一个v i e w n a m e ( 视图名称) ,m o d e l 需要通过一些其他途径( 比如设置请求参数) 来传递上 去。 2 2 2 传统w e b 应用框架的缺点 对于j a v aw e b 开发人员来说,一直期望着能出现一个无须太多配置的w e b 应用 框架,能够帮助我们直接来完成业务逻辑处理,而不需要了解堆积如山的配置选 项,虽然上述现有框架( 女n s t r u t s 、s p r i n g 、j s f 等) ,越来越多地采用代码生成方 式来开发w e b 应用程序,可惜这些代码生成工具只能用来生成相关的环境配置信息 或只能用于应用程序的初期开发阶段。 而如今w e b 开发框架层出不穷,每个新的框架的出现都会在原有经典框架的基 础上有所改进、有所创新,本文将要讲述的g r o o v yo ng r a i l s 应用框架也是如此。 2 3 基于g r a i l s 的w e b 应用框架研究 2 3 1g r a i l sw e b 应用框架概述 在w e b 应用日益普遍和复杂的今天,使用w e b 应用框架、选择一种好的w e b 应用框架进行系统开发,对于提高系统的开发效率,增强系统的正确性、健壮性 都起到了极其重要的作用。目前人们提出了各种w e b 应用系统开发框架,但这些 框架一般只封装了较为底层的技术细节,软件复用的粒度较小。我们提出了一种 新型的g r o o v yo ng r a i l s 的w e b 应用开发框架。本框架较好地实现了对表现层、业 务逻辑层和数据层的分离和封装,并方便地提供对事务处理、身份认证、权限控 制等关键服务的支持。我们将本框架应用于“湖北高级人民法院信访案件管理系统” 项目的实际开发之中,实践表明,本框架能够较好地支持大型的w e b 应用系统, 大大提高软件开发效率。 6 用g r o o v y i 吾言编写的g r a i l s 框架以其开发快捷、简单易用的特点极大地简化了 开发过程,降低了开发成本,同时较好地兼顾开发和运行效率,近年来逐渐成为 w e b 应用开发者关注的焦点。 ( 1 ) g r o o v y 语言 g r o o v y 是一种基于j a v a 的面向对象的脚本语言,其中涉及的所有事物都是对 象。它也是动态类型语言,类型标记存在于对象中,而不是用引用它的变量来决 定。它不要求声明变量的类型、方法的参数、方法的返回值,这样可以把类型 的决定时间推迟到代码运行时。 g r o o v y 可以直接将代码编译成字节码( c l a s s 文件) ,这又保证了它在j a v a 虚拟 机( j v m ) 中能够共享相同的对象模型。实际上,g r o o v y 对象就是一个j a v a , 象, 并且也使用j a v a 的编译器和虚拟机( j v m ) 。 ( 2 ) g r a i l s 框架 g r a i l s 是一个较新的w e b 应用开发框架,它是用g r o o v y 语言编写的全栈型 ( f u l l - - s t a c k ) 、开源的w e b 框架。g r a i l s 的目标就是超越其它语言在w e b 领域的独 占,为此g r a i l s 把目标集中在以下三个方面: 与j a v a 平台紧密集成; 提供简单的接口,同时保持调用底层j a v a 框架的灵活性及其特性; 改进j a v a 平台已有的缺点。 g r o o v y 问2 为j a v a 平台上的通用语言这一目标,与g r a i l s 成为通用w e b 框架的目 标不谋而合。他们都希望尽可能使用j a v a ,开发人员不需要重新学习就可以过渡到 动态语言的开发中。g r a i l s 通过定义简单的接口来提供上述框架的功能,但仍然可 以分别独立使用各框架。图2 1 表明g r a i l s 和这些框架以及企业级j a v a 之间的关系。 g r o o v y 虽然可以在g r a i l s 之外与s p 订n g 、h i b e r n a t e 等的a p i 协作,但g r a i l s 仍然控制 着企业级j a v a r 和g r o o v y 高级特性之间的联合,以便能为构建w e b 应用提供一个简单 的环境。 ( 3 ) g r a i l sm v c 模式 g r a i l s 使用m v c 模式来组织应用程序的结构,实现对应用程序的领域模型 ( d o m a i n m o d e l ) 、用户接口或视图( v i e w ) 以及控制逻辑的分离。其简单模型如 图2 2 所示。 m v c 模式 m v c 模式的核心是是实现三层甚至多层的松散耦合。它将一个应用系统分为 三个组件: 模型:指真正完成任务的代码。由于业务实体定义在领域模型中,所以领 域模型就成了应用程序的核心( g r a i l s 中的领域模型被定义在g r a i l s a p p d o m a i n 目录 7 下的黟0 0 v y 文件中) ; 图2 - 1g r a i l s 架构模块 f i g u r e2 - 1g r a i l sa r c h i t e c t u r em o d u l e 视图:是应用系统的外观,甩来生成用户接口,而通常w e b 应用程序的用 户接口就是h t m l 。视图经常需要从控制中得到需要的模型来生成用户接口; 控制器:负责处理用户的所有操作。他们通过操作( a c t i o n ) ( 在控制器中 定义的闭包,即c l o s u r e ,被称为操作) 来协调请求并编译模型,然后委托给一个 视图或者直接生成一个视图。有些时候控制器中会改变领域模型的状态。 图2 2 g r a i l s m v c 模式 f i g u r e2 - 2g r a i l sm v cp a t t e r n 2 3 2g r a i l s 优越性体现 ( 1 ) d r y ( d o n tr e p e a t y o u r s e l f , 不要重复自己) ,约定优于配置( c o n v e n t i o n o v e rc o n f i g u r a t i o n ) d r y 和约定优先于配置的思想,是由r a i l s 兴起并迅速被广泛接收和欣赏的 w e b 框架新思路。g r a i l s 作为j 2 e e 世界的r a i l s ,把这些最前沿的设计理念带入已 显得陈旧的j 2 e e 社区,拥有鲜明突出的特点,以及由此带来的优秀的开发效率。 d r y 的思想是避免重复的信息。g r a i l s 中的d r y 主要体现在u r l 映射定义 上( u r l m a p p i n g s g r o o v y ) 。在u r l m a p p i n g s g r o o v y 中定义了应用的各个u r l 以 后,通过使用g r a i l s 预定义的动态c o n 仃o l l e r 方法和g s p 标签,开发者就不必再把 程序u r l 硬编码在各处。比如使用g s p 标签 , 和 ,只需要提供c o n t r o l l e r ,a c t i o n 和可选的参数,就能产生所需的u r l 。 u r l 显示格式如图2 3 所示。 域 上下文路径 操作额外参数 厂 厂厂 厂 h t t p :l o c a l h o s t :8 0 8 0 c o n t e x t p a t h c o n t r o l l e r s h o w i d k e y v a l u e l jiiu 端口控制器i d 参数 图2 - 3u r l 显示格式 f i g u r e2 - 3u r ld i s p l a yf o r m a t 在约定优于配置方面,g r a i l s 和r a i l s 非常相似。所谓约定优于配置,就是按 照框架约定的方式来组织资源,就可以免去任何额外的配置。比如g r a i l s 的自定 义标签,存放在应用目录下的g r a i l s a p p t a g l i b 路径下,并以x x x t a g l i b g r o o v y 的 方式命名,就能无需任何配置就可以在g s p 里使用这些标签库了。另外还有s e r v i c e 类,j o b 类,包括整个g r a i l s 应用的目录结构。 ( 2 ) j v m 通过运行在j v m 之上,g r a i l s 拥有一个经过多年开发,已经非常成熟,业界 标准级别的运行环境。j v m 的稳定性和最新版本的性能都已经相当成熟。相比最 直接的比较对象r a i l s ,g r a i l s 在运行环境性能上的优势是比较明显的。另外,已 有的j a v a 可重用组件基本都可以直接使用于g r a i l s ,无疑也是g r a i l s 的一个明显优 势。 ( 3 ) g r o o v y 语言 g r a i l s 和g r o o v y 语言的关系是密不可分的。对于g r o o v y 来说,g r a i l s 是其最 大的杀手级应用。而对g r a i l s 来说,g r o o v y 是其能够实现灵活多变的快速开发, 区别于其他运行于j v m 之上的w e b 框架的核心技术。 g r o o v y 的动态特性是其最大亮点,在这方面几乎不输于r u b y 等其他热门的 动态语言。m e t a - p r o g r a m m i n g ,c l o s u r e 等等热门的动态语言特性在g r o o v y 中都有 9 很好的实现。而且g r o o v y 程序能够编译为j v m 字节码的c l a s s 文件,直接运行在 j v m 上,g r o o v y 程序的性能能够得到一定的帮助。g r o o v y 能够和j a v a 混合编写, 混合编译,使得j a v a 程序员能不用浪费自己在j a v a 语言上的大量投入,更轻松快 捷地进入g r o o v y 的世界。使用g r o o v y 编程,相比使用j a v a 来说快速轻松得多, 对为数众多的j a v a 程序员颇有吸引力。 ( 4 ) 插件系统 g r a i l s 的插件系统也是其亮点之一。首先,和r a i l s ,d j a n g o 等w e b 框架类似, 基于微内核的思想,插件( 可重用模块) 是框架的一等公民。g r a i l s 除了核心模块 以外的功能几乎都是通过插件方式实现的。实际上,一个g r a i l s 插件和一个g r a i l s 应用基本是完全一样的,同样可以使用g r a i l sr u n - a p p 命令来运行。区别仅在于一 个插件的根目录下需要提供一个f o o p l u g i n g r o o v y 文件,提供插件的一些描述信 息。 g r a i l s 插件基本可以做任何事情,g r a i l s 社区已经提供了各式各样的插件,发 布在g r a i l s 官方插件源上。查看现有的官方插件,可以执行下面的命令。 g r a i l sl i s t - p l u g i n s 在官方源里看到了需要的插件名称( 例如f o o 。p l u g i n ) ,安装插件也只需要一条 命令即可。 g r a i l si n s t a l l - p l u g i nf o o p l u g i n g r a i l s 就会下载相应的插件包,并解压到本地g r a i l s 应用的插件路径下,并自 动执行插件自带的安装脚本。 创建自己的插件也同样轻松。首先通过下面的命令自动建立插件项目。 g r a i l sc r e a t e - p l u g i nf o o g r a i l s 就会自动建立一个插件项目,包括一个f o o p l u g i n g r o o v y 的模板文件。 编写g r a i l s 插件的具体方法可以阅读g r a i l s 插件开发文档。编写好了插件以后,准 备发布到官方插件源上的话,首先注册一个c o d e h a u s 帐号,成为g r a i l sp l u g i n s 项 目成员,并在官方邮件列表上申请发布权限。然后,只需要一条命令就可以自动 发布到官方s v n 源,提供给所有人下载了。 g r a i l sr e l e a s e - p l u g i n 充分利用好已有的插件,可以进一步加快g r a i l s 的开发过程。比如我在开发 湖北高级人民法院信访案件管理系统的过程中就使用了q u a r t z ,s e a r c h a b l e ,f e e d s , o p e n i d 等插件。 ( 5 ) g s p 和标签库 g r a i l s 前端开发使用的是g s p ( g r a i l ss e r v e rp a g e s ) ,开发者可以使用g r a i l s 特定的模板语法编写g s p 动态页面,并且可以直接使用g r o

温馨提示

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

评论

0/150

提交评论