專利名稱:可實(shí)現(xiàn)代碼復(fù)用的server版代碼生成系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算系統(tǒng)應(yīng)用技術(shù)領(lǐng)域,具體地說是一種在J2EE(Java 2Enterprise Edition)平臺中實(shí)現(xiàn)代碼復(fù)用的可實(shí)現(xiàn)代碼復(fù)用的SERVER版代碼生成系統(tǒng)。
2、技術(shù)背景代碼系統(tǒng)作為一個MDA工具,在軟件的設(shè)計開發(fā)過程中,起著十分重要的作用,但是現(xiàn)有技術(shù)的代碼系統(tǒng)大多采用xml文件形式作為模型的基本格式,由控制器Ant進(jìn)行統(tǒng)一調(diào)度,通過調(diào)用解析工具對模型進(jìn)行分析,獲得模型的實(shí)例,然后控制器再將分析過的模型輸出到Velocity模版,進(jìn)而獲得代碼。
因此,現(xiàn)有技術(shù)的單系統(tǒng)版代碼生成系統(tǒng)在實(shí)際應(yīng)用過程中所存在的不足是(1)部署繁瑣。每個使用者都需要搭建一個環(huán)境,并且還要更改諸多配置信息。
(2)缺乏保護(hù)性。由于代碼系統(tǒng)是作為一個項目開放給使用者的,使用者可以很容易看到源代碼。這樣如果使用者自己進(jìn)行了修改,那么就可能無法保證代碼生成的準(zhǔn)確性。同時,代碼系統(tǒng)本身也得不到應(yīng)有的保護(hù)。
(3)版本控制困難。代碼系統(tǒng)往往會根據(jù)項目的需要,更改一些模板。而對于單系統(tǒng)版代碼系統(tǒng),每次修改都必須將補(bǔ)丁發(fā)布給所有使用者。在發(fā)布過程中,有了人為因素,難免會出現(xiàn)問題。很可能多個使用者之間版本不同,這對于整個項目來說是災(zāi)難性的。
(4)無法即時測試。傳統(tǒng)代碼系統(tǒng)由于沒有應(yīng)用環(huán)境,不能夠進(jìn)行即時測試。這常常會導(dǎo)致設(shè)計人員與開發(fā)人員的大量返工。
(5)糾錯系統(tǒng)制較差。傳統(tǒng)代碼系統(tǒng)往往沒有很強(qiáng)的糾錯系統(tǒng)制,這就對xml文件的編寫者和代碼系統(tǒng)使用者都提出了較高要求。另外,很可能出現(xiàn)一些莫名其妙的錯誤而導(dǎo)致無法生成代碼。較弱的糾錯系統(tǒng)制自然讓代碼系統(tǒng)的使用效率、生成代碼的成功率大打折扣。
3、發(fā)明內(nèi)容本發(fā)明的目的是提供一種可實(shí)現(xiàn)代碼復(fù)用的SERVER版代碼生成系統(tǒng)。
該代碼生成系統(tǒng),是將傳統(tǒng)單系統(tǒng)版代碼系統(tǒng)進(jìn)一步改進(jìn)而得到的基于b/s體系結(jié)構(gòu)的全新一款代碼系統(tǒng)。該版代碼系統(tǒng)解決了傳統(tǒng)單系統(tǒng)版代碼系統(tǒng)在使用中存在的如部署繁瑣、缺乏保護(hù)性、版本控制困難、無法即時測試、糾錯系統(tǒng)制較差等諸多弊病,本發(fā)明的技術(shù)方案是按以下方式實(shí)現(xiàn)的1)首先,在傳統(tǒng)單系統(tǒng)版代碼系統(tǒng)的基礎(chǔ)上,增加基于b/s結(jié)構(gòu)的可運(yùn)行代碼,構(gòu)建一個SERVER代碼系統(tǒng)的應(yīng)用平臺;2)利用log4j組件,架構(gòu)設(shè)計一個完善的糾錯處理系統(tǒng)制提高傳統(tǒng)代碼系統(tǒng)的糾錯功能;3)利用ant工具實(shí)現(xiàn)SERVER版生成代碼后的可編譯性和測試功能即時性;具體步驟如下A、代碼生成系統(tǒng)的開發(fā)a)選擇輸入數(shù)據(jù)的存儲介質(zhì),介質(zhì)是XML、數(shù)據(jù)庫表;b)設(shè)計數(shù)據(jù)模型。數(shù)據(jù)模型是將輸入數(shù)據(jù)讀取到內(nèi)存后的一種組織形勢;c)設(shè)計輸入介質(zhì)轉(zhuǎn)化為數(shù)據(jù)模型的解析工具,將輸入數(shù)據(jù)讀取到內(nèi)存的讀取工具;d)設(shè)計控制代碼生成系統(tǒng)啟動、運(yùn)行、停止管理的控制臺;e)根據(jù)數(shù)據(jù)模型實(shí)現(xiàn)輸出模板,代碼生成系統(tǒng)的數(shù)據(jù)即為根據(jù)模板得到的代碼,提取出不能夠復(fù)用的部分作為變量,設(shè)置在模板中,這樣生成的代碼就可以實(shí)現(xiàn)定制了;f)設(shè)計、實(shí)現(xiàn)控制輸出模板,輸出模板包括SQL、JAVA、JSP、XML、PROPERTIES多種格式的文件;B、代碼生成系統(tǒng)的部署a)重寫ANT任務(wù)主控制類;b)實(shí)現(xiàn)ANT任務(wù)在具體B/S應(yīng)用中的接口實(shí)現(xiàn),該接口完成單系統(tǒng)版到B/S架構(gòu)的轉(zhuǎn)換;c)設(shè)計并實(shí)現(xiàn)代碼系統(tǒng)在B/S架構(gòu)下的維護(hù)及運(yùn)行界面,并完成B/S結(jié)構(gòu)下代碼生成系統(tǒng)的運(yùn)行操作環(huán)境。
C、代碼生成系統(tǒng)的運(yùn)行a)在具體應(yīng)用中配置相關(guān)代碼系統(tǒng)輸入數(shù)據(jù)。
b)在操作界面中執(zhí)行代碼生成任務(wù)。
c)復(fù)制代碼,將生成的代碼復(fù)制到開發(fā)環(huán)境中,進(jìn)行進(jìn)一步的加工完善。
本發(fā)明的SERVER版代碼生成系統(tǒng)是一種項目過程管理工具,對項目的數(shù)據(jù)結(jié)構(gòu)進(jìn)行統(tǒng)一的管理,將傳統(tǒng)的配置文件方式管理數(shù)據(jù)結(jié)構(gòu)變成以具體應(yīng)用為基礎(chǔ)的數(shù)據(jù)庫管理方式。
本發(fā)明的積極效果是1)基于b/s結(jié)構(gòu)的server版。該代碼系統(tǒng)區(qū)別于以往代碼系統(tǒng)最大的特色是就是基于b/s結(jié)構(gòu)的,不再是傳統(tǒng)的單系統(tǒng)版。
2)方便版本控制。代碼系統(tǒng)的模板經(jīng)常要根據(jù)需求改變,而傳統(tǒng)的單系統(tǒng)版代碼系統(tǒng)必須重新發(fā)給每個使用者一個新的補(bǔ)丁。這樣作不僅十分麻煩,而且往往更新不及時,是的不同人可能生成出不同版本的代碼,可能造成很多不必要的時間、資源的浪費(fèi)。
3)一處部署,多人使用。使用者不需要任何部署,只需上傳文件、界面操作執(zhí)行、下載代碼3步,即可生成需要的代碼。
4)內(nèi)置強(qiáng)大糾錯系統(tǒng)制。該代碼系統(tǒng)設(shè)計了完善的糾錯系統(tǒng)制,可以對設(shè)計成果(xml配置文件)進(jìn)行校驗,對于發(fā)現(xiàn)的錯誤以日志的形式友好的提供給使用者。使得使用者可以很容易的更改設(shè)計成果(xml配置文件)的不合理之處。
5)即時測試。該代碼系統(tǒng)還可以在生成代碼系統(tǒng)后,自動編譯。簡單的幾步操作,就可以把諸如單表、主從表等功能部署到web應(yīng)用中去,直接讓使用者看到生成代碼的界面展現(xiàn)。通過這種測試,可以讓使用者很容易的看到自己設(shè)計與實(shí)現(xiàn)是否相符合。
6)可視化xml配置文件的書寫。代碼系統(tǒng)另一個特色,就是可以直接在代碼系統(tǒng)應(yīng)用中錄入設(shè)計成果,無需手工書寫xml配置文件。錄入后,既可以更加錄入的信息生成代碼。同時生成與手工書寫等同的xml配置文件。
7)支持單表、主從表的JAVA源文件、配置文件、初始化數(shù)據(jù)的自動生成。這樣的代碼無需任何修改,直接部署既可以使用。
8)支持多種數(shù)據(jù)庫(DB2、Oracle、Sysbase、Mysql等)的sql語句的自動生成。
圖1是代碼系統(tǒng)的工作步驟示意圖。
5、實(shí)施方式參照附圖對本發(fā)明的代碼生成系統(tǒng)作以下詳細(xì)說明。
本發(fā)明SERVER版代碼生成系統(tǒng)的實(shí)施步驟如下一、開發(fā)代碼生成系統(tǒng)a、選擇輸入數(shù)據(jù)的存儲介質(zhì)??梢允荴ML、數(shù)據(jù)庫表及其他設(shè)計數(shù)據(jù)模型。
數(shù)據(jù)模型是將輸入數(shù)據(jù)讀取到內(nèi)存后的一種組織形勢設(shè)計輸入介質(zhì)轉(zhuǎn)化為數(shù)據(jù)模型的解析工具。將輸入數(shù)據(jù)讀取到內(nèi)存的讀取工具設(shè)計并實(shí)現(xiàn)控制臺??刂婆_是啟動、運(yùn)行、停止代碼生成系統(tǒng)的管理中心。
b根據(jù)數(shù)據(jù)模型實(shí)現(xiàn)輸出模板。代碼生成系統(tǒng)的數(shù)據(jù)即為根據(jù)模板得到的代碼。提取出不能夠復(fù)用的部分作為變量,設(shè)置在模板中,這樣生成的代碼就可以實(shí)現(xiàn)定制了。
c設(shè)計并實(shí)現(xiàn)輸出控制。輸出模板眾多,包括SQL、JAVA、JSP、XML、PROPERTIES等多種格式的文件。因此,需要對每種格式的輸出進(jìn)行控制。
二、部署代碼生成系統(tǒng)a、重寫ANT任務(wù)主控制類。由于ANT任務(wù)主控制類僅僅支持單系統(tǒng)模式,因此,需要將其進(jìn)行改寫,已保證能夠在B/S架構(gòu)中被調(diào)用。
b、實(shí)現(xiàn)ANT任務(wù)在具體B/S應(yīng)用中的接口實(shí)現(xiàn)。該接口完成了單系統(tǒng)版到B/S架構(gòu)的轉(zhuǎn)換。
c、設(shè)計并實(shí)現(xiàn)代碼系統(tǒng)在B/S架構(gòu)下的維護(hù)及運(yùn)行界面。完成B/S結(jié)構(gòu)下代碼生成系統(tǒng)的運(yùn)行操作環(huán)境。
三、運(yùn)行代碼生成系統(tǒng)執(zhí)行代碼生成;a、在具體應(yīng)用中配置相關(guān)代碼系統(tǒng)輸入數(shù)據(jù)。
b、在操作界面中執(zhí)行代碼生成任務(wù)。
c、復(fù)制代碼。將生成的代碼復(fù)制到開發(fā)環(huán)境中,進(jìn)行進(jìn)一步的加工完善。
本發(fā)明的系統(tǒng)和現(xiàn)有技術(shù)相比,1)通過改進(jìn)傳統(tǒng)單系統(tǒng)版代碼系統(tǒng),增加基于b/s結(jié)構(gòu)的可運(yùn)行代碼,從而構(gòu)建一個代碼系統(tǒng)的應(yīng)用平臺,因而,解決了部署繁瑣、缺乏保護(hù)性、版本控制困難等問題;2)通過合理的架構(gòu)設(shè)計,充分利用了log4j組件,建立一個完善的糾錯處理系統(tǒng)制,解決了傳統(tǒng)代碼系統(tǒng)糾錯系統(tǒng)制較差的問題;3)充分利用ant工具的特點(diǎn),實(shí)現(xiàn)了生成代碼后的可編譯性,少量操作就可以部署到應(yīng)用中去的即時測試功能。
權(quán)利要求
1.可實(shí)現(xiàn)代碼復(fù)用的SERVER版代碼生成系統(tǒng),其特征在于在B/S結(jié)構(gòu)的基礎(chǔ)上,在服務(wù)器端配置一個通過瀏覽器隨處訪問使用的SERVER版代碼生成系統(tǒng)環(huán)境,該SERVER版代碼生成系統(tǒng)環(huán)境是1)首先,在傳統(tǒng)單系統(tǒng)版代碼系統(tǒng)的基礎(chǔ)上,增加基于b/s結(jié)構(gòu)的可運(yùn)行代碼,構(gòu)建一個SERVER代碼系統(tǒng)的應(yīng)用平臺;2)利用log4j組件,架構(gòu)設(shè)計一個完善的糾錯處理系統(tǒng)制提高傳統(tǒng)代碼系統(tǒng)的糾錯功能;3)利用ant工具實(shí)現(xiàn)SERVER版生成代碼后的可編譯性和測試功能即時性;具體步驟如下A、代碼生成系統(tǒng)的開發(fā)a)選擇輸入數(shù)據(jù)的存儲介質(zhì),介質(zhì)是XML、數(shù)據(jù)庫表;b)設(shè)計數(shù)據(jù)模型。數(shù)據(jù)模型是將輸入數(shù)據(jù)讀取到內(nèi)存后的一種組織形勢;c)設(shè)計輸入介質(zhì)轉(zhuǎn)化為數(shù)據(jù)模型的解析工具,將輸入數(shù)據(jù)讀取到內(nèi)存的讀取工具;d)設(shè)計控制代碼生成系統(tǒng)啟動、運(yùn)行、停止管理的控制臺;e)根據(jù)數(shù)據(jù)模型實(shí)現(xiàn)輸出模板,代碼生成系統(tǒng)的數(shù)據(jù)即為根據(jù)模板得到的代碼,提取出不能夠復(fù)用的部分作為變量,設(shè)置在模板中,這樣生成的代碼就可以實(shí)現(xiàn)定制了;f)設(shè)計、實(shí)現(xiàn)控制輸出模板,輸出模板包括SQL、JAVA、JSP、XML、PROPERTIES多種格式的文件;B、代碼生成系統(tǒng)的部署a)重寫ANT任務(wù)主控制類;b)實(shí)現(xiàn)ANT任務(wù)在具體B/S應(yīng)用中的接口實(shí)現(xiàn),該接口完成單系統(tǒng)版到B/S架構(gòu)的轉(zhuǎn)換;c)設(shè)計并實(shí)現(xiàn)代碼系統(tǒng)在B/S架構(gòu)下的維護(hù)及運(yùn)行界面,并完成B/S結(jié)構(gòu)下代碼生成系統(tǒng)的運(yùn)行操作環(huán)境;C、代碼生成系統(tǒng)的運(yùn)行a)在具體應(yīng)用中配置相關(guān)代碼系統(tǒng)輸入數(shù)據(jù);b)在操作界面中執(zhí)行代碼生成任務(wù);c)復(fù)制代碼,將生成的代碼復(fù)制到開發(fā)環(huán)境中,進(jìn)行進(jìn)一步的加工完善。
2.根據(jù)權(quán)利要求1所述的可實(shí)現(xiàn)代碼復(fù)用的SERVER版代碼生成系統(tǒng),其特征在于SERVER版代碼生成系統(tǒng)是一種項目過程管理工具,對項目的數(shù)據(jù)結(jié)構(gòu)進(jìn)行統(tǒng)一的管理,將傳統(tǒng)的配置文件方式管理數(shù)據(jù)結(jié)構(gòu)變成以具體應(yīng)用為基礎(chǔ)的數(shù)據(jù)庫管理方式。
全文摘要
本發(fā)明提供一種可實(shí)現(xiàn)代碼復(fù)用的SERVER版代碼生成系統(tǒng),該生成系統(tǒng)具有了B/S結(jié)構(gòu)的全部特點(diǎn),主要采用ANT、VELOCITY、XML解析等技術(shù),分為數(shù)據(jù)模型、XML解析、ANT任務(wù)實(shí)現(xiàn)、數(shù)據(jù)模型與輸出、輸出控制等部分。數(shù)據(jù)模型是指對于代碼生成系統(tǒng)輸入數(shù)據(jù)的一種組織形式;XML解析則是將存儲輸入數(shù)據(jù)的介質(zhì)分析從而獲得數(shù)據(jù)模型的部分;ANT任務(wù)實(shí)現(xiàn)完成了整個代碼生成系統(tǒng)的控制工作,根據(jù)參數(shù)的設(shè)置控制輸入輸出、控制;數(shù)據(jù)模型與輸出是指輸入與輸出的對于關(guān)系。輸出控制是指利用VELOCITY模板文件對輸出信息進(jìn)行控制。本發(fā)明的SERVER版代碼生成系統(tǒng)對于提升項目的開發(fā)效率有著非常大的幫助,實(shí)現(xiàn)了更大程度的復(fù)用。
文檔編號G06F9/44GK1945527SQ20061006939
公開日2007年4月11日 申請日期2006年10月26日 優(yōu)先權(quán)日2006年10月26日
發(fā)明者李建 申請人:山東浪潮齊魯軟件產(chǎn)業(yè)股份有限公司