Xdoclet是什麼?

本文的目的是讓你用最短的時間瞭解xdoclet技術,本人並未對其作深入的研究,若理解有誤請指正。

      XDoclet是一個開源項目,可以從這裏得到他:http://xdoclet.sourceforge.net/xdoclet/ 。 
      XDoclet可以通過你在java源代碼中的一些特殊的註釋信息,自動爲你生成配置文件、源代碼等等,例如web、ejb的部署描述文件、爲你生成struts的struts-config.xml配置文件、javascript校驗等。
      正如《XDoclet in Action》部分章節中文版 一文中所說的“當初,XDoclet因爲可以自動生成EJB繁雜的接口和佈署描述文件而聲名鵲起。然而,現在的XDoclet已經發展成了一個全功能的、面向屬性的代碼生成框架。J2EE代碼生成只是XDoclet的一個應用方面,它可以完成的任務已經遠遠超越了J2EE和項目文檔的生成。”
目前的版本可以爲web、ejb、struts、webwork、hibnaate、jdo、jmx等等生成描述文件、源碼等,XDoclet提供了ant的任務target支持,完全通過ant來完成任務。

      展開XDoclet的發佈包,samples目錄下有直接可以運行的ant腳本文件。這裏以web應用target爲例,說明XDoclet能爲我們作些什麼。
      下面是samples中一個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");
    }
}

注意紅色的註釋部分,注意執行完ant腳本後,將爲你生成struts-config.xml中相關的配置項,以下是腳本執行後生成的struts-config.xml文件中的配置:

  <!-- ========== Action Mapping Definitions =================================== -->
   <action-mappings>
    <action
      path="/struts/foo"
      type="test.web.StrutsAction"
      unknown="false"
      validate="true"
    >
      <forward
        name="success"
        path="/struts/getAll.do"
        redirect="false"
      />
    </action>

至此一點我們便可以瞭解XDoclet是如何工作的了,想想struts中的vaild配置文件、struts-config配置文件等需要我們大量的手工工作,如果再寫代碼的時候把相關的元數據信息寫在註釋裏,XDoclet將爲我們自動完成這些工作,當然像 @struts.action 、@struts.action-forward 等這些特定的註釋標籤需要去查XDoclet的相關文檔了,像前面說的一樣,Xdoclet對目前流行的多種框架、技術都提供了相關的支持。相信在一些情況下,Xdoclet會大大提高我們的工作效率的,瞭解更多信息請參考Xdoclet網站http://xdoclet.sourceforge.net/xdoclet/ 。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章