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

面向J2EE框架的代碼自動生成引擎設計及實現

2012-04-29 08:45:24徐愛春
計算機時代 2012年11期

摘要: 針對目前J2EE應用系統項目開發存在交付滯后、維護性差等問題,提出了一種新的軟件自動生成方法。設計了代碼自動生成引擎的總體框架,給出了各個組成部分的詳細設計方案,對關鍵組件進行了具體實現。該引擎為提高軟件開發效率和降低軟件開發成本提供了一種行之有效的途徑和方法,在一定程度上降低了軟件開發的風險。在實際項目開發中驗證了該系統的可行性。

關鍵詞: J2EE框架; 代碼自動生成; 軟件架構; 開發風險

中圖分類號:TP311文獻標志碼:A 文章編號:1006-8228(2012)11-42-02

Design and implementation of an engine generating codesautomatically based on J2EE architecture

Xu Aichun

(Huzhou Vocational & Technical College, Huzhou, Zhejiang 313000, China)

Abstract: An automatic generation method of codes based on J2EE is given in order to solve those problems such as delayed application delivery and poor maintenance. In this paper, a key detailed schema and method are introduced to realize code generating system after designing a system framework. An effective method is proposed to improve software development efficiency and reduce development costs. It reduces the risk in software development. Feasibility is verified in application process.

Key words: J2EE architecture; code generation; software architecture; development risk

0 引言

隨著企事業單位信息化系統的迅速普及,基于J2EE架構的技術已經在各個系統開發中得到了廣泛的應用。目前,在J2EE體系架構中,各種開源框架的J2EE架構已經比較成熟和穩定,并逐漸成為軟件項目開發的首選和主流,優秀的開源框架在J2EE中的應用在一定程度上也促進了企業級應用的發展[1,2]。

基于J2EE輕型框架的開發給項目開發帶來了革命性的突破。利用J2EE輕型框架[3,4],可以針對項目進行研發分層,實現項目的快速開發。但從現狀來看,還面臨著一些新的問題。

⑴ 項目過于集中,開發產能嚴重不足

由于大環境以及實際情況的影響,造成了項目開發往往集中在一個時間段內,而人力產能是單位時間內有限的關鍵資源,這會造成資源上的沖突,這種沖突會影響到公司承接項目的并行開發能力。

⑵ 項目工期緊,需求變更頻繁,質量要求高

信息系統建設單位往往對時間要求很嚴格,質量要求高,在時間非常緊張的情況下,變更需求以至重新設計并且編碼,無疑是對研發人員的嚴峻的考驗,研發壓力大,項目工期緊,項目質量有可能下降。

⑶ 系統可維護性差

由于開發人員風格有所不同,水平參差不齊,他們編寫的代碼千差萬別,造成了程序風格不統一,修改、維護也很不方便,這最終造成項目維護的效率下降。

對于上述這些問題,我們迫切需要一種新的研發模式替代以前的研發模式。針對J2EE平臺上開發的應用軟件,需要一個基于關系數據庫的應用軟件的J2EE平臺的代碼自動生成引擎,實現基于關系數據庫的業務系統的設計成果到實現代碼的快速轉化,并且可以實現由非J2EE的基于關系數據庫的應用到先進的J2EE的平臺的快速轉化。縮短設計到代碼實現的轉化時間,節約人力資源的成本。最大限度地提高代碼重用性、易維護性以及減輕開發人員負擔。幫助開發人員從煩瑣的編碼的技術細節中解脫出來,把更多的時間和精力投入到業務問題的分析和研究上,提高軟件的質量。

本文在研究各個開源框架的基礎上,集成J2EE各層核心技術,開發了一套面向J2EE輕型框架應用的代碼自動生成引擎[5],并在實際開發中得到了驗證,取得了良好的應用效果。

1 系統總體框架

根據上述業務需求,結合J2EE應用系統各個層級之間的關系,本引擎的總體框架設計如圖1所示。

圖1總體框架

首先根據用戶的業務需求進行建模,然后在此基礎上進行數據庫建模,本引擎根據數據庫各個表的字段及拓撲關系,以及相應的業務控制文件,調用模板自動生成系統業務邏輯層、表示層、數據訪問層,以及各個層之間的關系配置。

2 系統實現

2.1 數據訪問層(DAO)代碼生成

數據訪問層主要實現與底層數據庫交互,封裝了數據的增、刪、改、查等功能,代碼自動生成引擎根據數據表的名稱和字段,以及表之間的關系,在業務配置文件的指導下,調用數據訪問層的模板,生成數據訪問層代碼,代碼包括DAO接口及其實現,表的domain對象,若封裝了iBatis O/R組件,則還自動生成SqlMap XML文件。數據訪問層的接口代碼模板如下:

……

public interface Dao {

public PageInfo<> get

className/>List(

classNameLower/>,int pageNum, int pageSize);

public get

ById(final

);

public Long saveTo

className/> );

……

上述模板中,XDtClass:className為XDoclet標簽,獲取表名稱并根據規則轉換成類名的一部分,為獲得表中的主鍵。

數據訪問層模板可以根據不同的持續化組件生成相應實現代碼,如hibernate、iBatis,數據訪問層的接口iBatis實現代碼模板如下:

……

public class DaoiBatis extends BaseDao

implements Dao {

public void save(final

className/> ) {

=.

getType="getterName"/>();

if (== null) {

=(

getSqlMapClientTemplate().insert("add

className/>", );

} else {

getSqlMapClientTemplate().update("update

className/>", );

}

if(==null) {

throw new ObjectRetrievalFailureException(

className/>.class,

="propertyName"/>);

}

}

……

上述模板代碼以iBatis持續化組件為基礎,生成DAO層的接口、接口實現以及SqlMap,也可以按照業務需求,將相應的模板替換成基于hibernate等持續化層的實現。

2.2 業務邏輯層(Service)代碼生成

業務邏輯層是整個應用系統的核心,引擎根據不同業務需求定制不同的業務模板,業務邏輯層根據所接收到的Controller層不同命令進行業務處理,然后確定應該調度哪些數據訪問層接口。以下代碼為通用的業務邏輯層模板具體實現代碼:

……

public class ServiceImpl extends

BaseService implements Service {

@Autowired

private Dao dao;

public GridPage< >get

className/>InfoList(final String

getType="propertyName"/>) {

return dao.get(new

));

}

……

業務邏輯層模板中,針對復雜的業務邏輯,應該在代碼生成之后,根據需要進行定制,模板只能生成業務邏輯而不是復雜的代碼。

2.3 表現層代碼生成

表現層實現應用系統與用戶交互,表現層將用戶各種請求提交給控制層,控件層根據不同需求去請求業務邏輯層,并把處理結果反饋給表現層。表現層模板分為控制層(Manager),頁面表示(List,,form,js)等。代碼如下:

……

public final classController extends

ActionSupport {

@Autowired

privateService

className/>Service;

@PermissionFilter(ename="

Management")

public String enter InfoPage() {

……

PageInfo<> list=

className/>Service.getCompanyToxicPageList(queryParameter, page, rows);

gridPage=new GridPage<>(list);

return SUCCESS;

}

……

3 結束語

本引擎在研究J2EE輕型框架核心技術的基礎上,增加針對企業應用系統的核心業務,使用模板技術自動生成基于J2EE輕型框架應用系統各層的代碼。本引擎在實際使用過程中,能節省40%代碼編寫工作量,大大提高了系統可維護性,同時也提高了系統的開發效率,縮短了開發周期,提高了對客戶需求變更的響應速度。

參考文獻:

[1] 王懷民,周斌.企業應用架構模式[M].機械工業出版社,2006.

[2] 徐愛春,章堅民.基于XML/XLST代碼自動生成技術研究[J].杭州電

子工業學院學報,2004.24(4):64-68

[3] 徐愛春.區域化科技技術共享與服務平臺設計與實現[J].現代情報,

2010.3:71-74

[4] 徐愛春.電子商務教學資源庫共享服務平臺的研究與實現[J].湖州職

業技術學院學報,2012.1:22-25

[5] Andresson.Overview and Industrial Application Of Code generators

[J].Journal of System and Software,2004.32(3):185-214

主站蜘蛛池模板: 免费大黄网站在线观看| 成年人国产视频| 中日韩一区二区三区中文免费视频| 国产一区成人| 亚洲精品国偷自产在线91正片| 国产日韩丝袜一二三区| 91色在线观看| 国产成人高清在线精品| 夜夜拍夜夜爽| 国产精品区视频中文字幕| 在线观看视频一区二区| 欧美A级V片在线观看| 伊人激情久久综合中文字幕| 高清国产va日韩亚洲免费午夜电影| 亚洲性影院| 亚洲成人在线免费观看| 亚洲第一视频免费在线| 欧美中日韩在线| 国产精品自拍合集| 好紧好深好大乳无码中文字幕| 亚洲无码熟妇人妻AV在线| 日韩国产一区二区三区无码| 四虎影视8848永久精品| 亚洲成A人V欧美综合| 亚洲一区二区约美女探花| 亚洲视频欧美不卡| 欧美va亚洲va香蕉在线| 亚洲毛片网站| 伊人天堂网| 国内嫩模私拍精品视频| 女人18毛片一级毛片在线| 日韩无码黄色| 国产欧美日韩综合在线第一| 国产成人调教在线视频| 尤物国产在线| 99尹人香蕉国产免费天天拍| 亚洲成在人线av品善网好看| 色吊丝av中文字幕| 日本手机在线视频| 欧美一区精品| 欧美日本中文| 4虎影视国产在线观看精品| 欧美另类视频一区二区三区| 精品一区二区无码av| 99久久精品国产精品亚洲| 一本二本三本不卡无码| 男人天堂亚洲天堂| 国产凹凸一区在线观看视频| 日韩在线欧美在线| 亚洲AV无码乱码在线观看代蜜桃| 91日本在线观看亚洲精品| 亚洲天堂日韩在线| 国产视频久久久久| 午夜日b视频| 成人福利在线视频| 伊人久久福利中文字幕| 亚洲欧美自拍中文| 国产特级毛片aaaaaaa高清| 天天干天天色综合网| 久久性视频| 特级毛片免费视频| 99热国产这里只有精品9九 | 九九精品在线观看| 国产中文一区二区苍井空| 亚洲国产成人精品一二区| 91娇喘视频| 日本五区在线不卡精品| 宅男噜噜噜66国产在线观看| 国产免费羞羞视频| 亚洲性一区| 欧日韩在线不卡视频| 国产激情无码一区二区免费| 在线免费不卡视频| 亚洲一级毛片在线观播放| 中国美女**毛片录像在线| 亚洲无码日韩一区| 亚洲综合天堂网| 在线观看亚洲人成网站| 免费jizz在线播放| 五月天久久综合| a级毛片免费网站| 亚洲欧美国产五月天综合|