[导读]基于GEF和EMF的JavaEE快速开发工具设计
0 引 言
作为Java语言的缔造者,Sun公司在1999年底发布了企业级Java平台J2EE——Java 2 Enterise Edition。随着J2EE 1.5标准的发布,Sun将J2EE正式更名为JavaEE。JavaEE并非是一个产品,而是一系列技术和标准的集合。具体JavaEE平台下的产品由各厂商实现,并遵循同一个标准。本文描述了一款基于GEF和EMF技术的JavaEE应用快速开发工具——jStudio,它可以快速、高效地自动生成基于Struts+Spring+Hibernate的JavaEE应用。该工具可以大幅度减少程序开发人员编写重复性代码的工作量,同时可提高代码的质量,进而可缩短开发周期和降低开发成本。
1 GEF和EMF技术概述
GEF(graphical editing framework)和EMF(eclipse modeling framework)分别是Eclipse下的2个子项目,主要用于对桌面程序的开发。GEF是Eclipse提供的图形编辑框架,GEF可以为用户提供图形化编辑模型,提升用户体验。EMF是Eclipse提供的模型驱动应用程序开发框架,可以产生代码的框架。EMF可以基于XML Schema,UML或经过注释的Java中指定的模型,创建Java代码,实现图形化的数据编辑、操纵、读取和序列化。
用来描述EMF模型的模型叫作Ecore,本质上是UML类图的子集,它是关于应用的类和数据的简单模型。当建立Ecore后,EMF采用实现与接口相分离的设计,将Ecore中的每个类(Eclass)自动生成1个接口和1个实现类。
其中的接口都会继承EObject这些EMF中的集接口,如同java.lang.Object在Java中的地位。EMF还为每个模型分别生成一个对应factory和package的接口和实现类。其中,**Factory继承于EFactory,为模型中每个类的创建提供create***方法。在jStudio中,采用EMF实现业务模型对象建立和代码生成,降低开发人员的工作量,提高效率,而且生成的代码简洁、高效。
2 快速开发工具的分析与设计
2.1 jStudio组成及功能
jStudio主要包含GUI(图形界面)和SCAFFOLD(代码框架)2部分。GUI是指工具的可视化和图形化操作界面,主要采用GEF技术来实现,并且扩展Eclipse平台中的工作台、透视图、主菜单和向导等扩展点,最终以Eelipse的RCP形式独立地运行在操作系统之上,成为一个标准的桌面运用程序。jStudio的界面简约、美观,并具有良好的用户体验。SCAFFOLD是指工具生成基于Struts+Spring+Hibernate的代码框架。生成的代码包含JavaEE应用中页面展示层、控制层、业务逻辑层和数据持久层这四层的标准代码,实现对每一个模型的增删改查功能。jStudio在功能方面主要包含环境配置、模型建立、代码生成、页面编辑、数据库编辑和发布部署等功能,涵盖了JavaEE应用开发的各项操作和步骤,开发人员在jStudio上就可以实现代码从无到有,程序从设计到运行的全部过程。[!--empirenews.page--]
2.2 jStudio整体流程
jStudio的操作步骤包含新建模型文件、创建模型、生成代码、生成数据库及发布部署等,具体操作流程如图1所示。通过图1中所示的几步操作,开发人员就可以在不写一行代码的基础上,快速开发出一套包含每个模型对象增删改查功能的JavaEE应用。
2.3 jStudio代码生成机制
jStudio的代码生成主要由EMF的代码生成技术来实现。通过对JavaEE的应用,创建一个源文件,作为代码生成和业务模型对象建立的基础和输入接口。在这文件上通过jStudio提供的图形编辑器创建JavaEE应用的众多业务模型对象,然后jStudio在后台把它转换成EMF的Ecore模型,最后再调用EMF的代码生成功能为每个业务模型对象生成该对象的JSP页面展示层、Struts控制层、Spring业务逻辑层和Hibernate数据持久层的全部标准JavaEE代码。这些生成的代码编译、发布和运行后,将为每个业务模型对象提供数据增加、删除、编辑和查看等功能。另外,jStudio将根据数据源为每个模型自动生成对应的数据库表,减少了开发人员创建数据库表的工作量。
3快速开发工具的实现与运用
3.1 工具的实现
3.1.1 图形界面的实现
jStudio是可视化、图形化的编辑器,其图形界面主要通过以下几方面来实现:
(1)外围界面。jStudio的工作台、透视图、主菜单和向导这4个外围界面分别通过扩展Eclipse的org.eclipse.ui.actionSets,org.eclipse.ui.perspectives,org.eclipse.ui.menus和org.eclipse.ui.newWizards扩展点来实现,并且在这些扩展点对应的必须要实现的方法中编写所需的代码。在编写完自定义代码后,这些扩展点在Eclipe平台中将再次调用SWT和JFace的方法和函数,以实现所需的图形、按钮和界面等。
(2)模型图形。模型在jStudio中对应的是业务对象,是javabean,对应着数据库里的表。图形是可以上下变长的矩形,上端是对象的名称,下端是对象的属性,随着属性的增加,图形会不断地变长。另外,图形也可以把属性折叠起来,显示对象名称。同时,双击图形会弹出一对话框,在对话框中可以设置对象的各种属性和信息。
(3)连接线条。连接线条表示业务对象与业务对象间的关系,类似于数据库表间的外键关联。连接线条带有锚点,一端表示源对象,另一端表示目标对象,并能够随着源对象和目标对象的位置改变而自动伸缩,连接线条本身不能独立存在,必须连接源对象和目标对象,且总是在其他图形的上层。在实现过程中,jStudio的连接线条必须实现连接线Connection接口、锚点Connection Anchor接口和布线器(connection router)接口。
(4)属性大纲。每次在图形编辑器上选定了模型对象,GEF视图都会在selection Changed方法中收到通知,并且检查这个对象是否实现了IpropertySource接口。一旦实现了这个接口,GEF便会使用此接口的方法来查询所选择的对象属性,并用表格的方式显示出来。jStudio提供的对象属性都实现了IPropertySource接口,模型对象的位置、大小和其他信息都在属性视图中显示。[!--empirenews.page--]
3.1.2 代码生成的实现
jStudio主要利用了EMF中的JET(java emittertemplates)来进行代码生成,JET是一个与JSP非常类似,根据定制的模板生成最终文本代码的工具。JET与JSP使用相同的语法,在后台都被编译成Java程序;二者都可以接受输入的对象作为参数,都可以在代码中插入字符串值,可以直接使用Java代码执行循环、声明变量或执行逻辑流程控制(脚本)。
在jStudio中,首先根据基于Struts+Spring+Hibernate框架的JavaEE应用体系架构和用户最终代码的需求,分别定义了JSP页面展示层、Struts控制层、Spring业务逻辑层和Hibernate数据持久层的多达21个模板文件;然后,EMF再将这些模板文件转换为一一对应的Java类;最后,分别调用这些Java类中的generate()方法,生成最终的基于Struts+Spring+Hibernate框架的JavaEE应用系统代码。经过以上3个步骤生成的代码在jStudio编译、发布和部署后就能顺利地运行,用户在浏览器中输入系统地址就能对每个业务模型对象进行增删改查的操作。
3.2 工具的运用
jStudio工具的使用较为方便,容易上手,只需简单的6步操作就可完成。第1步,通过向导建立后缀为.mda的源文件;第2步,使用jStudio的编辑器打开后缀为.mda源文件;第3步,在源文件中创建业务模型对象,并设置好对象间的关联关系;第4步,生成业务模型对象的所有代码;第5步,生成数据库表;第6步,对生成的程序打包、发布和部署。最后,在IE浏览器的地址栏上输入地址,即可访问生成的系统。
4 结 语
目前,市场中图形化、可视化的生成工具较少,基于Struts+Spring+Hibernate框架的代码工具市场开发不多,难以满足JavaEE应用开发的实际需要。使用快速开发工具生成代码可以大幅度提高软件开发的质量和生产率。研究结果表明,本文阐述的快速开发工具iStduio是一个基于GEF和EMF技术,可以生成基于Struts+Spring+Hibernate框架的JavaEE应用代码生成工具。jStduio使用简单、方便,功能强大,能节省开发人员60%左右的代码量。因此将来势必会受到众多JavaEE应用开发人员的青睐。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
近日,沈阳京东MALL涌进大批玩家,大部分都为此前在“沈阳京东MALL”微信公众号获得线下首发购买机会的朋友。据悉,此次GeForce RTX 4090显卡现货线下首发活动,受到众多玩家热烈追捧。...
关键字:
GE
FORCE
显卡
NVIDIA
艾伯森(Albertsons)正在与其竞争对手克罗格(Kroger) 就合并进行谈判。两家连锁杂货店最早可能于本周达成协议。(全球企业动态)...
关键字:
GE
通用电气公司(GE)周二表示,其医疗健康部门分拆的新公司将名为GE HealthCare,由四个业务部门组成——成像、超声波、病人护理解决方案和医药诊断。通用电气计划创设三个独立运作的上市公司,分别专注于医疗健康、航空和...
关键字:
HEALTH
通用电气
HC
GE
今天晚上21点,RTX 4090公版将在国内首发,在这个关键时刻,NVIDIA也是再次提醒大家,不要忘记。除了线上发售外,10月15日GeForce RTX 4090系列显卡将在线下正式开售,华硕、七彩虹、微星推出现货,...
关键字:
NVIDIA
FORCE
显卡
GE
法拉第未来(Faraday Future,FFIE)提交8K公告,宣布FFIE执行董事长兼董事Sue Swenson,董事Scott Vogel和Jordan Vogel,已正式辞去FFIE董事会董事和公司其他全部相关职...
关键字:
法拉第未来
GE
ADAM
FARADAY
默沙东(MSD)和国药集团联合宣布,双方签署合作框架协议,默沙东将其和Ridgeback公司合作研发的抗新冠病毒口服药物莫诺拉韦的经销权和独家进口权授予国药集团,同时双方将评估技术转让的可行性,以便该药物在中国境内生产、...
关键字:
SD
GE
CK
AC
(全球TMT2022年9月27日讯)Jabra推出Jabra Engage 50II及Engage 40两款全新联络中心耳麦。Jabra Engage 50 II采用了先进算法来检测用户语音波形及分析背景噪声。配备的3...
关键字:
GE
耳机
噪声
麦克风
打造更高的通话效率和客服评分 Jabra Engage 50 II 配备协同工作的强大 3 麦克风系统,可提供更清晰的语音和出色的背景噪声消除功能 Jabra Engage 40 凭借清晰语音以及超...
关键字:
GE
BSP
耳机
麦克风
(全球TMT2022年9月21日讯)iGame推出最为新潮的GeForce RTX 40系列高端显卡装备,本次Vulcan及Neptune等系列家族新品都将登场,包含GeForce RTX 4090及GeForce R...
关键字:
华为
显卡
七彩虹
GE
(全球TMT2022年9月15日讯)专业信息、软件解决方案和服务供应商威科集团宣布,广东坚朗五金制品股份有限公司(以下简称"坚朗")实施了CCH Tagetik财务结算与合并方案。该项目由CCH Tagetik中国大陆...
关键字:
TI
GE
数字化
软件
CCH Tagetik专家解决方案助力坚朗五金实现数字化转型升级 北京2022年9月14日 /美通社/ -- 全球领先的专业信息、软件解决方案和服务供应商威科集团今天宣布,广东坚朗五金制品股份有限公司(以下简称&quo...
关键字:
TI
GE
数字化
软件
伦敦2022年9月8日 /美通社/ -- 欧洲领先的另类投资管理公司LCM Partners今天宣布,任命Roger Kibble-White为集团首席财务官。 Roger作为首席财务官在投资行业拥有丰富经...
关键字:
RS
GE
BSP
WHITE
(全球TMT2022年9月7日讯)荣耀在2022年柏林国际电子消费品展览会(IFA)的主题演讲中公布了"Gateway to the Future"(通往未来的门户)项目,邀请两位人气艺术家利用增强现实技术(AR),以...
关键字:
荣耀
TI
FUTURE
GE
新加坡2022年9月6日 /美通社/ -- 全球数字保险解决方案提供商易保网络(eBaoTech)很荣幸地分享其客户Ageas 集团(Ageas)选用易保®云中台&r...
关键字:
数字化
GE
API
网络
42Gears客户可以继续使用MDM套件管理升级过的Android设备 印度班加罗尔, 2022年9月6日 /美通社/ -- 随着谷歌Android 13的最新发布,42G...
关键字:
Android
RS
GE
DM
(全球TMT2022年9月2日讯)在2022世界人工智能大会上,亚马逊云科技举办了"人工智能前沿技术趋势与最佳实践" 线上分论坛,分享了亚马逊云科技在人工智能与机器学习(AI/ML)领域的趋势洞察和前沿技术应用的最佳实...
关键字:
亚马逊
AI
机器学习
GE
(全球TMT2022年8月26日讯)运输和物流提供商GEODIS和用于营运仓库的自主移动机器人(AMR)企业Locus Robotics宣布了一项新的扩展协议,将在未来24个月内在GEODIS的全球仓库网点总共部署10...
关键字:
USB
GE
AMR
ROBOTICS
GEODIS与Locus Robotics签署扩展协议,在全球仓库网点部署1000个LocusBot 田纳星州纳什维尔和马萨诸塞州威明顿2022年8月25日 /美通社/ -- 全球领先的运输和物流提供商GEODIS和用...
关键字:
USB
ROBOTICS
GE
AMR
新加坡2022年8月25日 /美通社/ -- 为锂离子电池系统创造关键部件的创新公司JIOS Aerogel,将会在 "The Battery Show"(美国诺维电池展览会)上展示最新技术,而该展会...
关键字:
iOS
电池
GE
电动汽车
新加坡2022年8月25日 /美通社/ -- 2022 年新加坡国际能源周(SIEW) 现开放报名。第 15 届 SIEW 由能源市场管理局 (EMA) 主办,将邀请来自世界...
关键字:
新加坡
BSP
TE
GE