国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

擴展Eclipse輔助和規范開發流程

2024-07-21 02:15:15
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

  如果市場上的開發工具不能滿足您的需要,而自己開發 ide 又不太現實,那本文就是您所需要的,它介紹了如何擴展 eclipse jdt 來輔助規范你的項目開發流程和幫助約束你的代碼規范。

  一.前言

  你的小組的人員是否不按照你制訂的開發流程和代碼規范來開發? 你的小組的成員經常變化,經常要對新手講述什么是 struts,什么是mvc? 已有的開發工具的功能不能滿足你的需要?

  如果你遇到上述問題,請看看本文,雖然它不一定能解決好你的問題,但至少它回給你一定的啟發的。本文從實際案例觸發,深入淺出,圖文并茂向您描述了如何利用 eclipse 平臺規范你小組的開發流程,并且幫助新手快速融入開發中。 閱讀本文,最好具有 j2ee 開發、eclipse 平臺和插件開發、eclipse 平臺 jdt 插件擴展和 struts 相關知識。

  二.實施整體描述

  eclipse 雖然是一個開源的平臺,但是現如今其功能功能已經不輸給任何開發工具,借助 eclipse 自帶的 jdt 和各種第三方的插件,eclipse 成為最流行的開發工具之一。


  eclipse 已經擁有軟件開發,測試,文檔,協作等能力,它已經能融入軟件開發的整個流程中了。

  讓我們從一個實際的案例例談起,看看我們是如何擴展 eclipse 來輔助和規范我們的開發工作的。這是一個電力公司銷售分析系統,里面有眾多的各種各樣的分析主題,例如要分析一個電力公司的銷售情況,用戶可以選擇時間范圍來分析公司的銷售情況,如下圖所示:


  我們的小組在開發一個主題的流程大致是這樣的:


  編寫擴展 jdt 的插件輔助開發流程

  我們的開發流程從本質上來說,還是和上面一樣,但是由于我們使用了 wizards 和擴展了 jdt 來輔助我們完成工作,那么實際開發者的開發流程會簡化了,如下:


  核心是擴展了 jdt 插件,把開發的流程集中在一個 wizard 完成。

  首先,讓我們看看實際的效果,然后再深入說明和講解。

  1.在 eclipse 平臺中單擊開始->新建->j2ee 開發包->開發新的分析主題菜單。

  如下圖所示:


  2.首先顯示的是生成 action 類的界面,它擴展了 jdt 插件的功能來允許程序員的輸入客戶容許的查詢條件,而且它已經把父類設定為了可以看到父類 org.apache.struts.action.action,這是 struts 的要求.這再后面是用來自動生成 formbean,和 jsp 表單用的。


  3.單擊next,在這里輸入sql,并且可以直接測試。參數用?代替。小組成員可以直接在這里直接編寫,測試sql,再最后會自動生成java代碼。


  4.如果沒有錯誤,單擊 finish 按鈕。會自動生成 jsp,action 的骨架和基本功能代碼。自動生成的 jsp 表單,自動生成的 action 和自動生成的現實查詢結果的 jsp。由于這里各個項目完全不同,建立都使用模板引擎這樣隨時修改模板就不用修改為 java 代碼了。

  大體的結構如下,有兩個 jsp,一個 anction:


  5.根據實際情況修改骨架,運行,并且測試一下效果。

  三.如何開發

  1.首先是如何開發 eclipse 中的 wizard 。

  這里我不從頭介紹如何開發 wizard,如果您對如何開發 wizard 尚且一無所知,請參考 eclipse.org 上來自 doina klinger 的文章: http://www.eclipse.org/articles/article-jface%20wizards/wizardarticle.html ,此文 step by stey 的介紹了如何創建 eclipse 的 wizard,和各種細節知識。

  首先,看看我們插件的 plugin.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<?eclipse version="3.0"?>
<plugin>

<extension
point="org.eclipse.ui.newwizards">
<category

name="北京能博譯碼j2ee開發包"
id="net.sf.yangtze.pdpf"/>
<wizard
class="net.sf.yangtze.pdpf.wizards.newsubjectwizard"
icon="icons/sample.gif"
category="net.sf.yangtze.pdpf"
name="開發新的分析主題"
id="net.sf.yangtze.pdpf.wizards.newsubjectwizard"/>
</extension>

</plugin>


  實現它的類 net.sf.yangtze.pdpf.wizards.newsubjectwizard 繼承自 org.eclipse.jface.wizard.wizard 類,它有幾個重要的方法:

  addpage - 向 wizard 添加頁面,就是那些可以通過 next>,<back 瀏覽的頁面。

  finishpage - 當用戶點擊 finish 的時候程序完成的工作。在我們的插件中就是完成自動生成 jsp,action 的工作,把這些代碼放在finishpage 方法即可。

  我們有兩個 page 一個用來輸入和測試 sql 語句,一個用來定制 action 和可以輸入的參數。

  2.然后是如何從 jdt 擴展。

  這部分現成資料不多,所以要稍微探討一下。經常使用 eclipse 開發 java 的程序員應該非常熟悉 jdt,實際上 eclipse 平臺可以用來開發任何語言的,它并不是一個 java ide,java ide 的功能是通過 jdt 插件完成的,在 eclipse 的世界中一切都是插件。

  在開發 java 的時候,有許多的 wizard 來輔助我們完成編碼工作,如新建類,接口,如下圖:


  而且它里面有很多輔助工作,如你點擊超類的時候,有一個幫助你輸入超類名稱的窗口會彈出來,在里面你并不需要輸入類的完整的名稱,它會自動提示。接口和包都有類似的輔助輸入的功能。


  我使用這些功能覺得很方便和習慣,所以我希望我的插件在創建 action 的時候也能有類似的功能,而我不想自己再重新造個輪子(而且這個工作可不輕松),所以我就得從 jdt 中擴展,而不使用標準的 org.eclipse.jface.wizard.wizard 類。

  在傳統的 wizard 中我們使用 org.eclipse.jface.wizard.wizard 和 org.eclipse.jface.wizard.wizardpage 類,但如果你希望繼承 jdt 的功能必須對應使用 org.eclipse.jdt.internal.ui.wizards.newelementwizard 和 org.eclipse.jdt.ui.wizards.newtypewizardpage 類。

  newelementwizard 也是繼承自 wizard,它只是做了一些檢查是不是 java 項目等工作,eclipse 中新建類,和接口 wizard 都是從這個類基礎發展而來的。內容豐富的是 org.eclipse.jdt.ui.wizards.newtypewizardpage 類,它包含了瀏覽項目,瀏覽超類,接口等功能,而且提供了豐富的方法來構建你的 java 類型,例如添加方法,添加 import 等,更多內容可以參考自帶的 api doc 文件,一幕了然。

  可以看看我上面插件中的例子:

public void createcontrol(composite parent) {
 initializedialogunits(parent);
 composite composite = new composite(parent, 0);
 int ncolumns = 4;
 gridlayout layout = new gridlayout();
 layout.numcolumns = ncolumns;
 composite.setlayout(layout);
 //上圖中的 source folder 控件
 createcontainercontrols(composite, ncolumns);
 //package
 createpackagecontrols(composite, ncolumns);
 //一個分割線
 createseparator(composite, ncolumns);

 createtypenamecontrols(composite, ncolumns);
 createmodifiercontrols(composite, ncolumns);
 //父類的選擇控件
 createsuperclasscontrols(composite, ncolumns);
 //接口選擇控件
 createsuperinterfacescontrols(composite, ncolumns);
 //
 createseparator(composite, ncolumns);
 //我們擴展的控件
 creatstrutscontrols(composite, ncolumns);
 setsuperclass("org.apache.struts.action.action", true);
 setcontrol(composite);
}


  總結

  eclipse 的強大在于它容許插件擴展其它插件,利用 jdt 你完全可以開發出一個符合自己要求的快速開發工具,而并不需要非常多的代碼。有興趣的讀者可以參考看一下 lomboz 項目,一個為 eclipse 開發 j2ee 的插件,它的功能強大,但實際它的代碼卻并不多。

  擴展 eclipse 完全可以構建屬于你自己的快速開發工具,它可以顯著的提高工作效率。而且任何一個新手都可以快速上手,你的知識被整個項目組成員共享,這減少了 java 所被詬病的復雜。就我的例子來說在我的項目組中,新員工,只需要基本的 java 和 sql 知識,根本不用去從頭學習 struts,mvc,他們可以有更多的時間為用戶開發更多的功能,而不需要為工具,框架所困擾。 希望本文能起到拋磚引玉的作用,更多的國內開發人員能融入的 eclipse 的世界中來。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛学| 盐山县| 信阳市| 壤塘县| 盱眙县| 绵竹市| 北票市| 星子县| 子洲县| 罗定市| 治多县| 临海市| 湘潭市| 高唐县| 巫溪县| 依兰县| 彰化县| 元阳县| 蕉岭县| 山东| 连城县| 武功县| 枞阳县| 孟州市| 定日县| 绥化市| 公安县| 浠水县| 德州市| 章丘市| 龙海市| 呈贡县| 汝阳县| 大石桥市| 丹凤县| 嘉荫县| 宁陵县| 惠州市| 剑河县| 当雄县| 丽江市|