本文的目的是讓你用最短的時(shí)間了解xdoclet技術(shù),本人并未對(duì)其作深入的研究,若理解有誤請(qǐng)指正。
XDoclet是一個(gè)開(kāi)源項(xiàng)目,可以從這里得到他:http://xdoclet.sourceforge.net/xdoclet/ 。
XDoclet可以通過(guò)你在java源代碼中的一些特殊的注釋信息,自動(dòng)為你生成配置文件、源代碼等等,例如web、ejb的部署描述文件、為你生成struts的struts-config.xml配置文件、javascript校驗(yàn)等。
正如《XDoclet in Action》部分章節(jié)中文版 一文中所說(shuō)的“當(dāng)初,XDoclet因?yàn)榭梢宰詣?dòng)生成EJB繁雜的接口和布署描述文件而聲名鵲起。然而,現(xiàn)在的XDoclet已經(jīng)發(fā)展成了一個(gè)全功能的、面向?qū)傩缘拇a生成框架。J2EE代碼生成只是XDoclet的一個(gè)應(yīng)用方面,它可以完成的任務(wù)已經(jīng)遠(yuǎn)遠(yuǎn)超越了J2EE和項(xiàng)目文檔的生成。”
目前的版本可以為web、ejb、struts、webwork、hibnaate、jdo、jmx等等生成描述文件、源碼等,XDoclet提供了ant的任務(wù)target支持,完全通過(guò)ant來(lái)完成任務(wù)。
展開(kāi)XDoclet的發(fā)布包,samples目錄下有直接可以運(yùn)行的ant腳本文件。這里以web應(yīng)用target為例,說(shuō)明XDoclet能為我們作些什么。
下面是samples中一個(gè)struts的action代碼:
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Simple class to test Jakarta Struts generation (Jakarta Struts 1.2 beta 2 only).
*
* @struts.action
* path="/struts/foo"
*
* @struts.action-forward
* name="success"
* path="/struts/getAll.do"
* redirect="false"
*/
public final class StrutsAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
return mapping.findForward("success");
}
}
注意紅色的注釋部分,注意執(zhí)行完ant腳本后,將為你生成struts-config.xml中相關(guān)的配置項(xiàng),以下是腳本執(zhí)行后生成的struts-config.xml文件中的配置:
<action-mappings>
<action
path="/struts/foo"
type="test.web.StrutsAction"
unknown="false"
validate="true"
>
<forward
name="success"
path="/struts/getAll.do"
redirect="false"
/>
</action>
至此一點(diǎn)我們便可以了解XDoclet是如何工作的了,想想struts中的vaild配置文件、struts-config配置文件等需要我們大量的手工工作,如果再寫(xiě)代碼的時(shí)候把相關(guān)的元數(shù)據(jù)信息寫(xiě)在注釋里,XDoclet將為我們自動(dòng)完成這些工作,當(dāng)然像 @struts.action ?#162;@struts.action-forward 等這些特定的注釋標(biāo)簽需要去查XDoclet的相關(guān)文檔了,像前面說(shuō)的一樣,Xdoclet對(duì)目前流行的多種框架、技術(shù)都提供了相關(guān)的支持。相信在一些情況下,Xdoclet會(huì)大大提高我們的工作效率的,了解更多信息請(qǐng)參考Xdoclet網(wǎng)站http://xdoclet.sourceforge.net/xdoclet/ 。
posted on 2006-11-05 08:31
xzc 閱讀(337)
評(píng)論(0) 編輯 收藏 所屬分類:
Xdoclet