亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SSH框架的JavaEE項(xiàng)目代碼生成工具的研究與實(shí)現(xiàn)

        2018-01-11 23:59:36朱海明
        關(guān)鍵詞:代碼生成

        朱海明

        摘要:本文分析了基于SSH框架的輕量型Java EE項(xiàng)目的特點(diǎn),實(shí)現(xiàn)了由表格驅(qū)動(dòng)的SSH框架代碼生成工具。開發(fā)人員設(shè)計(jì)好數(shù)據(jù)庫表格結(jié)構(gòu)作為工具的輸入部分,然后由代碼生成工具自動(dòng)生成SSH項(xiàng)目中的Spring、Struts、Hibernate等配置文件和Java EE項(xiàng)目代碼。該工具能加快應(yīng)用系統(tǒng)開發(fā)效率、快速展現(xiàn)系統(tǒng)原型,生產(chǎn)中具有顯著的現(xiàn)實(shí)意義。

        關(guān)鍵詞:SSH框架;Java EE;代碼生成

        中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2017)11-0057-02

        基于SSH的WEB應(yīng)用開發(fā)過程當(dāng)中,從設(shè)計(jì)數(shù)據(jù)庫物理結(jié)構(gòu)至生成系統(tǒng)原型,存在web.xml、Spring、Struts和Hibernate等大量配置文件,過程繁瑣且容易出錯(cuò);另一方面,需要編寫實(shí)體類、數(shù)據(jù)操作接口/類、服務(wù)接口/類、視圖類和WEB頁面,工作內(nèi)容重復(fù)、代碼量大、可視化開發(fā)工具缺乏,對軟件開發(fā)自動(dòng)化支持不足。

        1 基于SSH框架的Java EE項(xiàng)目架構(gòu)

        1.1 JavaEE架構(gòu)基本理論

        根據(jù)Java EE應(yīng)用程序架構(gòu)[1],Web項(xiàng)目中三層架構(gòu)(如圖1所示)將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表示層(Presentation Layer)、業(yè)務(wù)邏輯層(Business Logic Layer)、數(shù)據(jù)訪問層(Data Access Layer)三層。數(shù)據(jù)訪問層負(fù)責(zé)數(shù)據(jù)庫訪問,完成數(shù)據(jù)增刪查改等工作;業(yè)務(wù)邏輯層負(fù)責(zé)信息系統(tǒng)的業(yè)務(wù)邏輯處理,調(diào)用數(shù)據(jù)訪問層接口完成數(shù)據(jù)持久化;表示層負(fù)責(zé)用戶界面顯示。

        1.2 基于SSH框架的輕量型Java EE項(xiàng)目

        基于SSH框架的J2EE Web項(xiàng)目[2](如圖2所示),本文在表示層使用Struts2框架,接收用戶發(fā)起的請求信息,向用戶反饋系統(tǒng)處理的結(jié)果;數(shù)據(jù)訪問層使用Hibernate4框架對數(shù)據(jù)庫的操作進(jìn)行封裝;業(yè)務(wù)邏輯層的Bean處理具體的業(yè)務(wù)邏輯。三層中的Bean均交由Spring4負(fù)責(zé)管理,由Spring負(fù)責(zé)管理。值對象(VO)、數(shù)據(jù)傳輸對象(DTO)、普通Java對象(POJO)根據(jù)各層具體需求使用。

        1.3 Java EE Web項(xiàng)目應(yīng)用模塊結(jié)構(gòu)

        根據(jù)Java EE WEB應(yīng)用的模塊結(jié)構(gòu)約定[3],發(fā)布后的war文件在Java容器目錄下展開后存放WEB-INF目錄,JSP頁面、靜態(tài)Web文件以及其他靜態(tài)資源(如圖片、Javascript等)。其中WEB-INF目錄下存放web.xml文件、lib和classes目錄。Lib下存放項(xiàng)目引用的jar包,classes目錄存放java源碼編譯后的Java中間字節(jié)碼。

        Eclipse創(chuàng)建的動(dòng)態(tài)Web項(xiàng)目中,web.xml存放在WebContent\WEB-INF目錄下,引入的庫文件放入Web Content\WEB-INF\lib目錄下,src目錄用來存放源代碼。在引入SSH框架后,各框架的配置文件均放入resource目錄下。Eclipse構(gòu)建項(xiàng)目時(shí),自動(dòng)將該目錄下資源與編譯后的.class文件一同放入WEB-INF\class目錄中。

        2 基于SSH框架的Java EE代碼生成工具的設(shè)計(jì)與實(shí)現(xiàn)

        2.1 代碼生成工具框架

        如圖3所示,SSH代碼自動(dòng)化生成工具[4]包括三大模塊,第一部分是數(shù)據(jù)表格信息(或數(shù)據(jù)庫表格元信息)讀取模塊,它負(fù)責(zé)讀取每一張數(shù)據(jù)表格元信息(字段名稱、字段類型及長度,是否主鍵,是否可空等約束條件)。第二部分主要負(fù)責(zé)將表格元信息轉(zhuǎn)化為接口、類等代碼生成模塊信息。第三部分根據(jù)相對應(yīng)的數(shù)據(jù)元素信息在前文所述JavaEE Web模塊應(yīng)用程序文件目錄結(jié)構(gòu),在對應(yīng)目錄結(jié)構(gòu)下自動(dòng)生成相應(yīng)的JSP頁面、輸出映射的JAVA代碼、以及相應(yīng)的配置文件。

        代碼生成器使用數(shù)據(jù)庫或自定義的excel表格作為將要生成的代碼生成的數(shù)據(jù)來源。主要是在已經(jīng)設(shè)計(jì)好的數(shù)據(jù)庫中,或者在設(shè)計(jì)的excel表格中,讀取相關(guān)數(shù)據(jù)庫、數(shù)據(jù)庫表格、字段、約束條件等元信息,以此為基礎(chǔ)生成項(xiàng)目各層所需要代碼的信息。其中使用數(shù)據(jù)庫作為元數(shù)據(jù)信息元時(shí),可利用JAVA的DatabaseMetaData對象可以獲得數(shù)據(jù)庫元信息,進(jìn)而獲得數(shù)據(jù)庫表格、字段的名稱、屬性以及其約束條件等相關(guān)信息。Excel表格作為元數(shù)據(jù)信息源時(shí)使用Apache POI讀取Excel表格,設(shè)計(jì)格式如表1。

        2.2 關(guān)鍵流程

        代碼生成工具首先讀取自身配置文件ssh.properties,一方面用來確定項(xiàng)目的相關(guān)信息(比如開發(fā)機(jī)構(gòu)、項(xiàng)目名稱、項(xiàng)目存放路徑等),另一方面用以確定用戶選取的數(shù)據(jù)源是excel設(shè)計(jì)表格,還是數(shù)據(jù)庫表格,根據(jù)選擇讀取表格信息(字段名稱、字段注解、字段類型、字段約束),采集到的表格信息均存放入數(shù)據(jù)庫元信息列表,將各層的代碼生成器加入生成器接口列表,以便循環(huán)生成。數(shù)據(jù)元信息采集完畢后,各層代碼生成器通過映射關(guān)系轉(zhuǎn)換器將所有的對象名稱轉(zhuǎn)換成為相應(yīng)層的待生成對象的代碼名稱,與此同時(shí),XML配置生成器將分別生成Hibernate的OR映射文件、Spring的接口中注入管理配置文件和Struts的MVC配置文件。最后,統(tǒng)一調(diào)用各個(gè)層面的代碼生成器接口生成相應(yīng)代碼文件,并根據(jù)項(xiàng)目配置信息存放于相應(yīng)位置。

        2.3 關(guān)鍵代碼實(shí)現(xiàn)

        // 讀取配置文件,找不到文件則使用設(shè)定的默認(rèn)值

        Properties props = getProperties();

        // 獲得項(xiàng)目配置信息

        ProjectConfiguration pc= ConfigManager.getProjectConfig(props);

        // 讀取數(shù)據(jù)庫表結(jié)構(gòu)信息endprint

        Configuration cfg = ConfigManager.getTableMeta(pc);

        // 從excel表定義中加載項(xiàng)目實(shí)體表數(shù)據(jù)

        List tableMetaDatas = cfg.readDataTables();

        // 從數(shù)據(jù)庫表基礎(chǔ)結(jié)構(gòu)轉(zhuǎn)化為類實(shí)體,形成ORM對應(yīng)關(guān)系

        List ecs= new ArrayList();

        for( TableMetaData tableMetaData : tableMetaDatas){

        EntityClass ec= Converter.table2Class(pc, tableMetaData);

        ecs.add(ec);

        }

        List cg = new ArrayList();

        // 數(shù)據(jù)庫定義語言生成器,以便生成數(shù)據(jù)庫的SQL代碼

        cg.add(new DdlCodeGenerator(tableMetaDatas,pc));

        // 依次加入Pojo、Dao、Service、Action、Jsp代碼生成器

        cg.add(new PojoCodeGenerator(ecs, pc));

        cg.add(new DaoCodeGenerator(ecs, pc));

        cg.add(new ServiceCodeGenerator(ecs, pc));

        cg.add(new ActionCodeGenerator(ecs, pc));

        cg.add(new JspCodeGenerator(ecs, pc));

        // XML配置生成器

        cg.add(new HbmXmlGenerator(tableMetaDatas, ecs, pc));

        cg.add(new HibernateXmlGenerator(tableMetaDatas, ecs, pc));

        cg.add(new SpringXmlGenerator(ecs, pc));

        cg.add(new Struts2XmlGenerator(ecs, pc));

        // 日志properties配置

        cg.add(new LogPropsGenerator(pc));

        // 現(xiàn)有資源文件(圖片、JS、jar包等)生成器(簡單拷貝文件至目標(biāo)文件夾)

        cg.add(new ResourceGenerator(pc));

        // eclipse項(xiàng)目工程生成器(將模板信息具化后放到目標(biāo)工程文件夾)

        cg.add(new EclipseProjectGenerator(pc));

        // 依次生成各層代碼

        for( ICodeGenerator codeGenerator : cg){

        codeGenerator.generate();

        }

        3 結(jié)語

        本文研究實(shí)現(xiàn)的以數(shù)據(jù)表格驅(qū)動(dòng)的基于SSH框架的Java EE代碼自動(dòng)化生成工具,簡化了SSH框架的應(yīng)用,提高了開發(fā)生產(chǎn)效率。下一步,我們將深入研究整合相關(guān)工具形成可視化配置界面,提高代碼生成器的易用性和便利性。

        參考文獻(xiàn)

        [1]Kayal D著,張平 等譯.JavaEE 設(shè)計(jì)模式Spring企業(yè)級開發(fā)最佳實(shí)踐[M].北京:人民郵電出版社,2010:1-4.

        [2]基于MVC模式的Java主流框架整合技術(shù)研究[J].計(jì)算機(jī)與數(shù)字工程,2009,37(10):91-93.

        [3]Jendrock E等著,李鵬等譯.Java EE6權(quán)威指南基礎(chǔ)篇(第4版)[M].北京:人民郵電出版社,2012:13-14.

        [4]丁亮,許舒人.基于SSH框架的java代碼自動(dòng)生成[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(9):72-77.

        Abstract:This paper analyzes the characteristics of lightweight Java EE project based on SSH framework, and implements a table driven SSH framework code generation tool. Developers to design a database table structure as input part of the tool, then the code generation tool for the automatic generation of SSH project in Spring, Struts, Hibernate configuration files and Java EE project code, in order to achieve the rapid generation of code, to show the prototype system. This tool improves the efficiency of application development, and has significant practical significance in production.

        Key Words:SSH framework;Java EE;code generation

        猜你喜歡
        代碼生成
        基于GPT輔助的Web前端代碼快速生成工具的設(shè)計(jì)
        Lustre語言可信代碼生成器研究進(jìn)展
        代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
        電子世界(2016年15期)2016-08-29 02:14:28
        基于XML的代碼自動(dòng)生成工具
        電子科技(2015年2期)2015-12-20 01:09:20
        基于關(guān)系數(shù)據(jù)模型代碼生成器的設(shè)計(jì)與實(shí)現(xiàn)
        手机看片久久第一人妻| 亚洲AV无码精品一区二区三区l| 亚洲精品一区网站在线观看| 61精品人妻一区二区三区蜜桃| 久久精品国产亚洲av天美| 日本边添边摸边做边爱| 中文字幕人妻少妇引诱隔壁| 国产在线无码一区二区三区 | 少妇被爽到高潮喷水免费福利| 极品人妻被黑人中出种子| 三年中文在线观看免费大全| 国产三级在线观看免费| 国产成人福利在线视频不卡| 亚洲一区二区日韩在线| 日本久久精品福利视频| 美女网站免费观看视频| 丰满人妻熟妇乱又伦精品软件 | 亚洲一区二区三区av在线免费| 亚洲精品一区二区三区av| 亚洲av手机在线播放| 夫妻免费无码v看片| 帮老师解开蕾丝奶罩吸乳视频| 十八岁以下禁止观看黄下载链接| 国产真实伦视频在线视频| 一区二区在线观看视频亚洲| 亚洲av专区国产一区| 男人和女人做爽爽视频| 国产成人免费一区二区三区| 999精品免费视频观看| 亚洲一本之道高清在线观看| 美女免费视频观看网址| 精品伊人久久大线蕉色首页| 中文人妻无码一区二区三区在线| 国产精品福利片免费看| 亚洲av一二三四又爽又色又色| 国产自拍在线视频91| 日本熟日本熟妇中文在线观看| 国产成人无码免费网站| 少妇熟女淫荡丰满| 亚洲国产综合精品一区| 精品无人区无码乱码毛片国产|