推薦使用ModelGoon!
創(chuàng)新互聯(lián)公司堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十多年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、H5開發(fā)、網(wǎng)站制作、品牌網(wǎng)站設(shè)計(jì)、小程序設(shè)計(jì)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。
*ModelGoon是什么?
它是一個(gè)Eclipse插件,用于基于UML圖的模型設(shè)計(jì),以及逆向工程(即從已有源代碼生成類圖等,以作為代碼分析或者文檔使用)。
*適用條件
ModelGoon目前最新的版本是3.0.0,適用于Eclipse3.4+,包括最新的Eclipse 3.6版本
*如何安裝
推薦在線安裝,site地址是
需要注意的是,有時(shí)必須使用代理服務(wù)器才能連接成功。
也可以離線安裝,下載包的地址是
下載完該jar之后,直接拷貝到Eclipse安裝目錄下的dropins目錄下,重啟Eclipse即可
*如何使用
安裝成功后,file=new=other菜單里面會(huì)多出一項(xiàng)ModelGoon Diagrams,在自己已有的java工程中新建一個(gè)class diagram,用以生成類圖。創(chuàng)建完成后你會(huì)發(fā)現(xiàn)生成了一個(gè).mgc后綴的文件,現(xiàn)在你可以用這個(gè)文件創(chuàng)建自己的類圖了。用法相當(dāng)直接,你可以把若干個(gè)java類拖拽進(jìn)這個(gè)文件視圖中,UML類圖自然被生成,以及各個(gè)類之間的關(guān)系。
*參考資料
需要注意的是,有時(shí)必須使用代理服務(wù)器才能連接成功。
*為什么選擇ModelGoon而不是其他的插件
其他的UML插件也能完成類似的功能,但是在安裝使用的過程中會(huì)碰到種種問題。
常有人推薦EclipseUML這個(gè)插件,但是目前這個(gè)項(xiàng)目的主頁無法打開,似乎已停止維護(hù);
還有Slime UML據(jù)說也不錯(cuò),但是找不到下載源;
此外還有AgileJ口碑也不錯(cuò),可惜是付費(fèi)的,沒有免費(fèi)版;
至于papyrusuml,只是單向的,做模型設(shè)計(jì)、繪制UML圖時(shí)使用,而并不支持逆向工程;
用命令提示符來生成應(yīng)用程序
打開命令提示符,輸入javac 源代碼文件路徑\源代碼文件名稱.java ?或 javac -jar?源代碼文件路徑\源代碼文件名稱.jar
然后就可以看見源代碼文件的旁邊多了一個(gè) 源代碼文件名稱.class??文件 或?源代碼文件名稱.jar
直接用IDE中的構(gòu)建選項(xiàng) NetbeansIDE 和 eclipse都是現(xiàn)在很受歡迎的IDE
用myeclipse將wsdl文件生成java代碼:
1、選擇新建的工程后,點(diǎn)擊右鍵,選擇“Run As”-“Run”,如下圖所示:
2、彈出如下窗口:
3、?在上圖中,左邊選擇“Java Application”后,點(diǎn)擊左上角的新增“”按鈕new configuration,頁面如下圖所示:
4、在上圖中,將“Include libraries when searching for a main class”?勾上,而后點(diǎn)擊“Main class”右邊的“Search”按鈕,彈出窗口如下圖所示:
5、在上圖中輸入WSDL2Java后,查找到axis這個(gè)jar包中對應(yīng)類,點(diǎn)擊“OK”按鈕,此時(shí)主窗口如下圖所示:
6、在上圖中點(diǎn)擊“Arguments”頁簽,Arguments里把要生成的web service URI或wsdl文件寫進(jìn)去,最后點(diǎn)run。在下圖中輸入的是wsdl文件的路徑:?????src/wsdl/acd_accessCode_interface.wsdl、src/wsdl/acd_accessCode_service.wsdl:
7、生成的java代碼如下:
引用spire.barcode.jar包
//創(chuàng)建BarcodeSettings對象
BarcodeSettings?settings?=?new?BarcodeSettings();
//設(shè)置條碼類型為
QR二維碼settings.setType(BarCodeType.QR_Code);???????
//設(shè)置二維碼數(shù)據(jù)
settings.setData("Hello?123456789");
//設(shè)置二維碼顯示數(shù)據(jù)
settings.setData2D("Hello?123456789");?????
//設(shè)置數(shù)據(jù)類型
settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);
//設(shè)置二維碼模型寬度
settings.setX(1.0f);
//設(shè)置二維碼糾錯(cuò)級別settings.setQRCodeECL(QRCodeECL.H);
//創(chuàng)建BarCodeGenerator實(shí)例
BarCodeGenerator?barCodeGenerator?=?new?BarCodeGenerator(settings);
//根據(jù)settings生成圖像數(shù)據(jù),保存至BufferedImage
BufferedImage?bufferedImage?=?barCodeGenerator.generateImage();
//將圖片數(shù)據(jù)保存為PNG格式
ImageIO.write(bufferedImage,?"png",?new?File("QRCode.png"));
Freemarker是一個(gè)模板框架。我們可以通過Freemarker進(jìn)行代碼生成或頁面的靜態(tài)生成。 現(xiàn)在簡單的說一下怎樣使用Freemarker Freemarker的主要生成類
public boolean generate(String templateFileName, Map data,
String fileName) {
try {
//取得模板的位置
String templateFileDir=templateFileName.substring(0, templateFileName.lastIndexOf("/"));
//取得模板的名字
String templateFile=templateFileName.substring(templateFileName.lastIndexOf("/"), templateFileName.length());
//取得生成文件的路徑
String genFileDir=fileName.substring(0, fileName.lastIndexOf("/"));
Template template = ConfigurationHelper.getConfiguration(templateFileDir).getTemplate(templateFile);
File fileDir=new File(genFileDir);
org.apache.commons.io.FileUtils.forceMkdir(fileDir);
File output = new File(fileName);
if(output.exists()){
//如何代碼已存在不重復(fù)生成
return false;
}
Writer writer = new FileWriter(output);
template.process(data, writer);
writer.close();
} catch (TemplateException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
代碼中的Map 是模板所需要的數(shù)據(jù),我們可以通過面向?qū)ο竦姆椒ò褦?shù)據(jù)存在模板中public boolean genDaoInterface(String fileName){
DaoModel daoModel=new DaoModel();
//設(shè)置Dao實(shí)現(xiàn)類的包名
daoModel.setPackageName(DaoConstant.PACKAGE);
//取得接口名
String className=StringUtils.substringBefore(fileName,".");
//設(shè)置接口名
daoModel.setClassName(className);
MapString, Object data = new HashMapString, Object();
data.put("model", daoModel);
//設(shè)置生成的位置
String filePath=new String("src/"+package2path(DaoConstant.PACKAGE)+"/"+fileName);
//代碼生成
return super.generate(DaoConstant.INTERFACE_TEMPLATE, data, filePath);
}
data.put("model", daoModel);由這句代碼可看出我們將可以在模板中直接調(diào)用這些數(shù)據(jù)package ${model.packageName};
public interface ${model.className} extends BaseHibernateDao {
}
JNPF低代碼開發(fā)平臺(tái)可以以極少量代碼或無代碼的方式開發(fā)各種企業(yè)級管理系統(tǒng),其特點(diǎn)如下:
1. web在線開發(fā)
低代碼開發(fā)平臺(tái)是個(gè)全Web可視化開發(fā)和運(yùn)行架構(gòu),只要在web端網(wǎng)頁就能開發(fā),不需要安裝配置復(fù)雜的本地開發(fā)環(huán)境;
2. 代碼生成器
依托代碼生成器,開發(fā)人員大大減少了代碼編輯量,并且生成的代碼還可下載拷貝應(yīng)用,可根據(jù)需求進(jìn)行個(gè)性化修改;
3. 工作流引擎
工作流引擎可以輕松快捷的搭建業(yè)務(wù)流程管理系統(tǒng)和協(xié)同交互管理體系,可隨時(shí)按需更改流程邏輯以適應(yīng)新需求;
4. 流程設(shè)計(jì)器
流程設(shè)計(jì)器集成了表單設(shè)計(jì)器和流程引擎,并支持線性流程、父子流程、同步分合流、異步分合流程,全部實(shí)現(xiàn)可視化設(shè)計(jì);
5. 全源碼交付
低代碼開發(fā)平臺(tái)提供商業(yè)化的全源碼交付,可進(jìn)行二次個(gè)性化開發(fā),減少了代碼編寫,簡化了開發(fā)流程,提升了開發(fā)效率;
6. 更新升級快速
如果需求發(fā)生變化,用戶只需通過web端網(wǎng)頁登錄開發(fā)賬號(hào),調(diào)整相應(yīng)的功能并發(fā)布即可,整個(gè)過程可能只需要幾分鐘便可完成;
7. 數(shù)據(jù)管理強(qiáng)大
低代碼開發(fā)平臺(tái)的數(shù)據(jù)處理功能十分強(qiáng)大,可自動(dòng)生成各種報(bào)表,還可以以大屏的方式直觀的呈現(xiàn)出實(shí)時(shí)的動(dòng)態(tài)數(shù)據(jù);
8. 縮減開發(fā)成本
傳統(tǒng)的編程開發(fā)模式需要許多人來共同協(xié)作研發(fā),現(xiàn)在運(yùn)用低代碼開發(fā)平臺(tái)只需要兩三個(gè)甚至一個(gè)人便可完成開發(fā)工作;
9. 部署方式靈活
平臺(tái)的部署方式十分多樣化,可實(shí)現(xiàn)公有云和私有云部署,也可進(jìn)行本地化部署,以滿足企業(yè)多變的差異化需求;
10. 快速開發(fā)SaaS
平臺(tái)可以輕松快速地開發(fā)ERP、CRM、HRM、BPM、OA、財(cái)務(wù)管理等各類SaaS管理系統(tǒng)和業(yè)務(wù)管理系統(tǒng),助力企業(yè)效益提升;
這便是JNPF低代碼開發(fā)平臺(tái)的主要特點(diǎn)和優(yōu)勢,其大大優(yōu)于第三方定制開發(fā)以及企業(yè)自主探索開發(fā)等幾種傳統(tǒng)的開發(fā)方式。運(yùn)用JNPF低代碼開發(fā)平臺(tái),開發(fā)者可以高效快速的開發(fā)各種企業(yè)管理系統(tǒng),并還可以進(jìn)行各種子系統(tǒng)、子平臺(tái)的開發(fā)拓展,以滿足企業(yè)各種復(fù)雜的管理運(yùn)營需求,同時(shí)系統(tǒng)的更新升級也十分敏捷方便。