999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于GEF和EMF的JavaEE快速開發(fā)工具設(shè)計(jì)

2010-04-12 00:00:00
現(xiàn)代電子技術(shù) 2010年10期

摘 要:討論了基于GEF和EMF技術(shù)的JavaEE應(yīng)用快速開發(fā)工具,即jStudio。該工具是一個(gè)桌面程序,采用MDA模型驅(qū)動(dòng)開發(fā)。通過可視化、圖形化的編輯器建立業(yè)務(wù)模型對(duì)象,生成增、刪、改、查等所有代碼,并能夠自動(dòng)編譯、自動(dòng)發(fā)布和部署及同步更新數(shù)據(jù)庫,能夠快速高效地自動(dòng)生成基于Struts+Spring+Hibernate框架的JavaEE應(yīng)用系統(tǒng)和構(gòu)件。實(shí)踐檢驗(yàn)表明,jStudio能極大地提高軟件開發(fā)效率和生產(chǎn)力,加快軟件價(jià)值的實(shí)現(xiàn)。

關(guān)鍵詞:JavaEE; GEF; EMF; MDA模型驅(qū)動(dòng)

中圖分類號(hào):TP315 文獻(xiàn)標(biāo)識(shí)碼:B

文章編號(hào):1004-373X(2010)10-0066-03

Design of JavaEE Fast Software Development Tool Based on GEF and EMF

WAN Dong

(Guangdong Communication Polytechnic, Guangzhou 510650, China)

Abstract:The fast software development JavaEE application tool-jStudio based on the technology of GEF and EMF is discussed. The tool is a desktop program, which uses MDA model driver. With the visualized and graphic editor, the business model objectives can be built, the codes related to adding, deleting, changing and searching can be generated, and the database can be edited, deploied automatically and updated synchronously. This tool can automatically generate JavaEE application system and component based on the framework of Struts+Spring+Hibernate. Several real projects demonstrate that JStudio tool can improve the software development speed and productivity significantly.

Keywords:JavaEE; GEF; EMF; MDA model drive

0 引 言

作為Java語言的締造者,Sun公司在1999年底發(fā)布了企業(yè)級(jí)Java平臺(tái)J2EE——Java 2 Enterise Edition[1-2]。隨著J2EE 1.5標(biāo)準(zhǔn)的發(fā)布,Sun將J2EE正式更名為JavaEE。JavaEE并非是一個(gè)產(chǎn)品,而是一系列技術(shù)和標(biāo)準(zhǔn)的集合。具體JavaEE平臺(tái)下的產(chǎn)品由各廠商實(shí)現(xiàn),并遵循同一個(gè)標(biāo)準(zhǔn)。本文描述了一款基于GEF和EMF技術(shù)的JavaEE應(yīng)用快速開發(fā)工具——jStudio,它可以快速、高效地自動(dòng)生成基于Struts+Spring+Hibernate的JavaEE應(yīng)用[3]。該工具可以大幅度減少程序開發(fā)人員編寫重復(fù)性代碼的工作量,同時(shí)可提高代碼的質(zhì)量,進(jìn)而可縮短開發(fā)周期和降低開發(fā)成本[4-5]。

1 GEF和EMF技術(shù)概述

GEF(graphical editing framework)和EMF(eclipse modeling framework)分別是Eclipse[6]下的2個(gè)子項(xiàng)目,主要用于對(duì)桌面程序的開發(fā)。GEF是Eclipse提供的圖形編輯框架,GEF可以為用戶提供圖形化編輯模型,提升用戶體驗(yàn)。EMF是Eclipse提供的模型驅(qū)動(dòng)應(yīng)用程序開發(fā)框架,可以產(chǎn)生代碼的框架。EMF可以基于 XML Schema,UML 或經(jīng)過注釋的Java中指定的模型,創(chuàng)建Java代碼,實(shí)現(xiàn)圖形化的數(shù)據(jù)編輯、操縱、讀取和序列化。

用來描述EMF模型的模型叫作Ecore,本質(zhì)上是UML類圖的子集,它是關(guān)于應(yīng)用的類和數(shù)據(jù)的簡單模型。當(dāng)建立Ecore后,EMF采用實(shí)現(xiàn)與接口相分離的設(shè)計(jì),將Ecore中的每個(gè)類(Eclass)自動(dòng)生成1個(gè)接口和1個(gè)實(shí)現(xiàn)類。

其中的接口都會(huì)繼承EObject這些EMF中的集接口,如同java.lang.Object在Java中的地位。EMF還為每個(gè)模型分別生成一個(gè)對(duì)應(yīng)factory和package的接口和實(shí)現(xiàn)類。

其中,**Factory繼承于EFactory,為模型中每個(gè)類的創(chuàng)建提供create***方法。在jStudio中,采用EMF實(shí)現(xiàn)業(yè)務(wù)模型對(duì)象建立和代碼生成,降低開發(fā)人員的工作量,提高效率,而且生成的代碼簡潔、高效。

2 快速開發(fā)工具的分析與設(shè)計(jì)

2.1 jStudio組成及功能

jStudio主要包含GUI(圖形界面)和SCAFFOLD(代碼框架)2部分[7-8]。GUI是指工具的可視化和圖形化操作界面,主要采用GEF技術(shù)來實(shí)現(xiàn),并且擴(kuò)展Eclipse平臺(tái)中的工作臺(tái)、透視圖、主菜單和向?qū)У葦U(kuò)展點(diǎn),最終以Eclipse 的RCP形式獨(dú)立地運(yùn)行在操作系統(tǒng)之上,成為一個(gè)標(biāo)準(zhǔn)的桌面運(yùn)用程序。jStudio的界面簡約、美觀,并具有良好的用戶體驗(yàn)。SCAFFOLD是指工具生成基于Struts+Spring+Hibernate的代碼框架。生成的代碼包含JavaEE應(yīng)用中頁面展示層、控制層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層這四層的標(biāo)準(zhǔn)代碼,實(shí)現(xiàn)對(duì)每一個(gè)模型的增刪改查功能。jStudio在功能方面主要包含環(huán)境配置、模型建立、代碼生成、頁面編輯、數(shù)據(jù)庫編輯和發(fā)布部署等功能,涵蓋了JavaEE應(yīng)用開發(fā)的各項(xiàng)操作和步驟,開發(fā)人員在jStudio上就可以實(shí)現(xiàn)代碼從無到有,程序從設(shè)計(jì)到運(yùn)行的全部過程。

2.2 jStudio整體流程

jStudio的操作步驟包含[9]新建模型文件、創(chuàng)建模型、生成代碼、生成數(shù)據(jù)庫及發(fā)布部署等,具體操作流程如圖1所示。通過圖1中所示的幾步操作,開發(fā)人員就可以在不寫一行代碼的基礎(chǔ)上,快速開發(fā)出一套包含每個(gè)模型對(duì)象增刪改查功能的JavaEE應(yīng)用。

圖1 操作流程圖

2.3 jStudio代碼生成機(jī)制

jStudio的代碼生成主要由EMF的代碼生成技術(shù)來實(shí)現(xiàn)。通過對(duì)JavaEE的應(yīng)用,創(chuàng)建一個(gè)源文件,作為代碼生成和業(yè)務(wù)模型對(duì)象建立的基礎(chǔ)和輸入接口。在這文件上通過jStudio提供的圖形編輯器創(chuàng)建JavaEE應(yīng)用的眾多業(yè)務(wù)模型對(duì)象,然后jStudio在后臺(tái)把它轉(zhuǎn)換成EMF的Ecore模型,最后再調(diào)用EMF的代碼生成功能為每個(gè)業(yè)務(wù)模型對(duì)象生成該對(duì)象的JSP頁面展示層、Struts控制層、Spring 業(yè)務(wù)邏輯層和Hibernate數(shù)據(jù)持久層的全部標(biāo)準(zhǔn)JavaEE代碼。這些生成的代碼編譯、發(fā)布和運(yùn)行后,將為每個(gè)業(yè)務(wù)模型對(duì)象提供數(shù)據(jù)增加、刪除、編輯和查看等功能。另外,jStudio將根據(jù)數(shù)據(jù)源為每個(gè)模型自動(dòng)生成對(duì)應(yīng)的數(shù)據(jù)庫表,減少了開發(fā)人員創(chuàng)建數(shù)據(jù)庫表的工作量。

3 快速開發(fā)工具的實(shí)現(xiàn)與運(yùn)用

3.1 工具的實(shí)現(xiàn)

3.1.1 圖形界面的實(shí)現(xiàn)

jStudio是可視化、圖形化的編輯器,其圖形界面主要通過以下幾方面來實(shí)現(xiàn):

(1) 外圍界面。jStudio的工作臺(tái)、透視圖、主菜單和向?qū)н@4個(gè)外圍界面分別通過擴(kuò)展Eclipse的org.eclipse.ui.actionSets,org.eclipse.ui.perspectives,org.eclipse.ui.menus和org.eclipse.ui.newWizards擴(kuò)展點(diǎn)來實(shí)現(xiàn),并且在這些擴(kuò)展點(diǎn)對(duì)應(yīng)的必須要實(shí)現(xiàn)的方法中編寫所需的代碼。在編寫完自定義代碼后,這些擴(kuò)展點(diǎn)在Eclipe 平臺(tái)中將再次調(diào)用SWT和JFace的方法和函數(shù),以實(shí)現(xiàn)所需的圖形、按鈕和界面等。

(2) 模型圖形。模型在jStudio中對(duì)應(yīng)的是業(yè)務(wù)對(duì)象,是javabean,對(duì)應(yīng)著數(shù)據(jù)庫里的表。圖形是可以上下變長的矩形,上端是對(duì)象的名稱,下端是對(duì)象的屬性,隨著屬性的增加,圖形會(huì)不斷地變長。另外,圖形也可以把屬性折疊起來,顯示對(duì)象名稱。同時(shí),雙擊圖形會(huì)彈出一對(duì)話框,在對(duì)話框中可以設(shè)置對(duì)象的各種屬性和信息。

(3) 連接線條。連接線條表示業(yè)務(wù)對(duì)象與業(yè)務(wù)對(duì)象間的關(guān)系,類似于數(shù)據(jù)庫表間的外鍵關(guān)聯(lián)。連接線條帶有錨點(diǎn),一端表示源對(duì)象,另一端表示目標(biāo)對(duì)象,并能夠隨著源對(duì)象和目標(biāo)對(duì)象的位置改變而自動(dòng)伸縮,連接線條本身不能獨(dú)立存在,必須連接源對(duì)象和目標(biāo)對(duì)象,且總是在其他圖形的上層。在實(shí)現(xiàn)過程中,jStudio的連接線條必須實(shí)現(xiàn)連接線Connection接口、錨點(diǎn)Connection Anchor接口和布線器(connection router)接口。

(4) 屬性大綱。每次在圖形編輯器上選定了模型對(duì)象,GEF視圖都會(huì)在selection Changed方法中收到通知,并且檢查這個(gè)對(duì)象是否實(shí)現(xiàn)了IpropertySource接口。一旦實(shí)現(xiàn)了這個(gè)接口,GEF便會(huì)使用此接口的方法來查詢所選擇的對(duì)象屬性,并用表格的方式顯示出來。jStudio提供的對(duì)象屬性都實(shí)現(xiàn)了IPropertySource接口,模型對(duì)象的位置、大小和其他信息都在屬性視圖中顯示。

3.1.2 代碼生成的實(shí)現(xiàn)

jStudio主要利用了EMF中的JET(java emitter templates)來進(jìn)行代碼生成,JET是一個(gè)與JSP 非常類似,根據(jù)定制的模板生成最終文本代碼的工具。JET與JSP使用相同的語法,在后臺(tái)都被編譯成 Java 程序;二者都可以接受輸入的對(duì)象作為參數(shù),都可以在代碼中插入字符串值,可以直接使用 Java 代碼執(zhí)行循環(huán)、聲明變量或執(zhí)行邏輯流程控制(腳本)。

在jStudio中,首先根據(jù)基于Struts+Spring+Hibernate框架的JavaEE應(yīng)用體系架構(gòu)和用戶最終代碼的需求,分別定義了JSP頁面展示層、Struts控制層、Spring 業(yè)務(wù)邏輯層和Hibernate數(shù)據(jù)持久層的多達(dá)21個(gè)模板文件;然后,EMF再將這些模板文件轉(zhuǎn)換為一一對(duì)應(yīng)的Java類;最后,分別調(diào)用這些Java類中的generate()方法,生成最終的基于Struts+Spring+Hibernate框架的JavaEE應(yīng)用系統(tǒng)代碼。經(jīng)過以上3個(gè)步驟生成的代碼在jStudio編譯、發(fā)布和部署后就能順利地運(yùn)行,用戶在瀏覽器中輸入系統(tǒng)地址就能對(duì)每個(gè)業(yè)務(wù)模型對(duì)象進(jìn)行增刪改查的操作。

3.2 工具的運(yùn)用

jStudio工具的使用較為方便,容易上手,只需簡單的6步操作就可完成。第1步,通過向?qū)Ы⒑缶Y為.mda的源文件;第2步,使用jStudio的編輯器打開后綴為.mda源文件;第3步,在源文件中創(chuàng)建業(yè)務(wù)模型對(duì)象,并設(shè)置好對(duì)象間的關(guān)聯(lián)關(guān)系;第4步,生成業(yè)務(wù)模型對(duì)象的所有代碼;第5步,生成數(shù)據(jù)庫表;第6步,對(duì)生成的程序打包、發(fā)布和部署。最后,在IE瀏覽器的地址欄上輸入地址,即可訪問生成的系統(tǒng)。

4 結(jié) 語

目前,市場(chǎng)中圖形化、可視化的生成工具較少,基于Struts+Spring+Hibernate框架的代碼工具市場(chǎng)開發(fā)不多,難以滿足JavaEE應(yīng)用開發(fā)的實(shí)際需要。使用快速開發(fā)工具生成代碼可以大幅度提高軟件開發(fā)的質(zhì)量和生產(chǎn)率[10]。研究結(jié)果表明,本文闡述的快速開發(fā)工具jStduio是一個(gè)基于GEF和EMF技術(shù),可以生成基于Struts+Spring+Hibernate框架的JavaEE應(yīng)用代碼生成工具。jStduio使用簡單、方便,功能強(qiáng)大,能節(jié)省開發(fā)人員60%左右的代碼量。因此將來勢(shì)必會(huì)受到眾多JavaEE應(yīng)用開發(fā)人員的青睞。

參考文獻(xiàn)

[1]DEITEL H M, DEITEL P J. Java how to program[M]. 5th ed.NewYork: Pearson, 2002.

[2]毛新軍.面向主體的軟件開發(fā)[M].北京:清華大學(xué)出版社,2005.

[3]劉乃麗.精通Java EE項(xiàng)目案例——基于Eclipse、Spring、Struts、Hibernate[M].北京:人民郵電出版社,2008.

[4]陳華軍.J2EE構(gòu)建企業(yè)級(jí)應(yīng)用解決方案[M].北京:人民郵電出版社,2002.

[5]趙永屹,宿紅毅,胡韶輝.結(jié)合AJAX與J2EE技術(shù)的Web信息檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,22(27):149-151.

[6]甘樹滿,王秀明.Eclipse 插件開發(fā)方法與實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2006.

[7]孫衛(wèi)琴.Java面向?qū)ο缶幊蘙M].北京:電子工業(yè)出版社,2006.

[8]李剛.Struts 2權(quán)威指南[M].北京:電子工業(yè)出版社,2007.

[9]何成萬,余秋惠.MVE模型2及軟件框架struts的研究[J].計(jì)算機(jī)工程,2002,28(6):274-281.

[10]趙冠偉,夏斌.富互聯(lián)網(wǎng)應(yīng)用程序研究初探[J].微型機(jī)與應(yīng)用,2005(12):4-6.

主站蜘蛛池模板: 无码国内精品人妻少妇蜜桃视频| 青青草原偷拍视频| 欧美亚洲日韩不卡在线在线观看| 欧美日韩第三页| 亚洲一级色| 国产污视频在线观看| 国产成人在线小视频| 少妇精品在线| 免费看美女自慰的网站| 国外欧美一区另类中文字幕| 欧美综合区自拍亚洲综合天堂| 亚洲免费毛片| 白浆视频在线观看| 青青草原国产av福利网站| 国产男人的天堂| 色欲不卡无码一区二区| 国内毛片视频| 日本手机在线视频| 亚洲精品黄| 欧美色综合久久| 国产精品精品视频| 国产成人av一区二区三区| 亚洲欧洲自拍拍偷午夜色| 亚洲国产中文精品va在线播放 | 国产尤物视频网址导航| аv天堂最新中文在线| 亚洲三级视频在线观看| 日韩免费毛片| 天天综合网亚洲网站| 尤物视频一区| 日韩福利视频导航| 日韩精品高清自在线| 精品伊人久久大香线蕉网站| 亚洲av无码成人专区| 老司机aⅴ在线精品导航| 国产亚洲欧美日韩在线一区二区三区| 制服丝袜一区| 99热这里只有精品在线观看| 在线观看免费黄色网址| 人妻精品久久无码区| 91精品久久久无码中文字幕vr| 婷婷久久综合九色综合88| 91青青草视频| 国产人妖视频一区在线观看| 色婷婷电影网| 黄色网在线免费观看| 久操线在视频在线观看| 中文字幕无码av专区久久 | 国产97色在线| 国产99视频精品免费视频7| 色哟哟色院91精品网站| 欧美成a人片在线观看| 四虎影视无码永久免费观看| 爱色欧美亚洲综合图区| 香蕉在线视频网站| 国产菊爆视频在线观看| 2021无码专区人妻系列日韩| 久久久久久久久亚洲精品| 在线毛片免费| 99热线精品大全在线观看| 精品国产三级在线观看| 国产欧美日韩资源在线观看| 六月婷婷精品视频在线观看| 日韩无码视频专区| 日韩精品一区二区三区大桥未久 | 亚欧成人无码AV在线播放| 狠狠亚洲婷婷综合色香| 国产精品极品美女自在线网站| 亚洲91在线精品| 精品久久久久久成人AV| 日韩精品中文字幕一区三区| 欧美有码在线| AV网站中文| 99热这里只有精品国产99| 在线精品自拍| 午夜老司机永久免费看片 | 亚洲区第一页| 国产18在线播放| 亚洲激情区| 秋霞一区二区三区| 狠狠色香婷婷久久亚洲精品| 91久久大香线蕉|