<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-314  評(píng)論-209  文章-0  trackbacks-0

    XDoclet 操作
    圖 1 顯示了 XDoclet 要求的輸入和生成的輸出。

    圖 1. XDoclet 黑盒子
    圖 1

    您可以看到,包含嵌入式 XDoclet 標(biāo)簽的 Java 源代碼是系統(tǒng)的輸入。在 Apache Ant 的驅(qū)動(dòng)下,XDoclet 處理輸入的代碼,生成的輸出文本文件可以是 Java 源代碼、HTML 頁(yè)面、XML 文件等。為了處理輸入,XDoclet 需要使用模板(保存在 .xdt 文件中)和標(biāo)簽處理器(用 Java 編碼)。XDoclet 把模板和標(biāo)簽處理器打包成“模塊”,不同的“模塊”處理不同的問(wèn)題域。

    XDoclet 生成的結(jié)構(gòu)模型
    XDoclet 對(duì)包含嵌入式 XDoclet 標(biāo)簽的輸入 Java 源代碼進(jìn)行解析,并為代碼建立非常詳細(xì)的結(jié)構(gòu)模型。結(jié)構(gòu)模型中的每個(gè)元素都代表源代碼中的一個(gè) Java 結(jié)構(gòu)。圖 2 顯示的結(jié)構(gòu)模型,揭示了 XDoclet 跟蹤的代碼構(gòu)造和關(guān)系。

    圖 2. XDoclet 的解析的 Java 源代碼的內(nèi)部結(jié)構(gòu)模型
    圖 2

    圖 2 中的結(jié)構(gòu)模型跟蹤類、接口、方法之類的代碼構(gòu)造(模型元素)。該模型還跟蹤元素之間的關(guān)系,例如繼承和接口實(shí)現(xiàn)。以內(nèi)聯(lián)注釋的形式嵌入在源代碼中的 XDoclet 標(biāo)簽被解析為模型元素的屬性,并被跟蹤

    深入 XDoclet
    圖 3 顯示了 XDoclet 的內(nèi)部結(jié)構(gòu),揭示了使其運(yùn)行的功能塊。

    圖 3. XDoclet 內(nèi)部的功能塊
    圖 3

    如圖 3 所示,Apache Ant 在運(yùn)行的時(shí)候控制著 XDoclet 的配置和操作。XDoclet 解析輸入的 Java 源代碼,并在內(nèi)存中生成結(jié)構(gòu)模型。模板引擎通過(guò)處理一組模板和標(biāo)簽處理器,生成輸出文件。模板和標(biāo)簽處理器可以是內(nèi)置的,也可以是定制的。在代碼生成期間,模板和標(biāo)簽處理器擁有對(duì)結(jié)構(gòu)模型的完全訪問(wèn)。

    XDoclet 虛假的復(fù)雜性
    XDoclet 實(shí)質(zhì)上就是一個(gè)通用的 Javadoc 引擎(請(qǐng)參閱側(cè)欄,通用的 Javadoc 引擎)。那么,是什么讓它看起來(lái)這么復(fù)雜呢?答案在于:XDoclet 幾乎從未被單獨(dú)討論過(guò),而總是藏在其他許多復(fù)雜的技術(shù)中。圖 4 顯示了了圍繞在 XDoclet 周圍的復(fù)雜性迷霧(請(qǐng)參閱側(cè)欄為什么 XDoclet 看起來(lái)比實(shí)際的要復(fù)雜得多)。

    為什么 XDoclet 看起來(lái)比實(shí)際的要復(fù)雜得多
    Apache Ant 自動(dòng)進(jìn)行 Java 軟件的生成過(guò)程。構(gòu)建管理過(guò)程通常是生產(chǎn)項(xiàng)目中更復(fù)雜過(guò)程中的一部分。構(gòu)建管理的術(shù)語(yǔ)和概念被集成到 Apache Ant 中,而且是理解其操作的先決條件。成熟的 Ant 腳本可能會(huì)非常復(fù)雜。Ant 的每個(gè)新版本,都會(huì)引入一些新的特性集,從而進(jìn)一步增加了復(fù)雜性。這形成了 XDoclet 表面的復(fù)雜性,因?yàn)?XDoclet 需要 Ant 才能執(zhí)行。

    XDoclet 處理的問(wèn)題領(lǐng)域是復(fù)雜性的另一個(gè)來(lái)源。在發(fā)布 XDoclet 的時(shí)候,XDoclet 已經(jīng)可以為 EJB 組件集成、J2EE Web 容器集成、Hibernate 持久性層、Struts 框架、Java 管理擴(kuò)展(JMX)等生成代碼。這些問(wèn)題領(lǐng)域中的每一個(gè)領(lǐng)域都有一大套該領(lǐng)域?qū)S玫男性捄透拍睢倪@些復(fù)雜的問(wèn)題領(lǐng)域出來(lái)的問(wèn)題,經(jīng)常主導(dǎo)著 XDoclet 的討論,這也提高了 XDoclet 表面的復(fù)雜性。可能是“只見森林,不見樹木”。

    圖 4. XDoclet 的復(fù)雜耦合
    Figure 4

    在圖 4 中,您可以看到 XDoclet 與以下內(nèi)容是緊密相關(guān)的:

    • Apache Ant,它控制著 XDoclet 的操作。XDoclet 是作為一組 Ant 任務(wù)存在的,沒有 Ant 則不能執(zhí)行。
    • 與生成文件關(guān)聯(lián)的具體問(wèn)題領(lǐng)域的一些細(xì)節(jié)。
    posted on 2006-11-05 08:29 xzc 閱讀(529) 評(píng)論(0)  編輯  收藏 所屬分類: Xdoclet
    主站蜘蛛池模板: 一级午夜a毛片免费视频| 亚洲无线观看国产精品| 一级视频在线免费观看| 亚洲午夜电影在线观看| 亚洲精品国产精品乱码不卡| 亚洲精品在线免费观看视频 | 中文字幕无码亚洲欧洲日韩| 久久精品亚洲一区二区| 亚洲日韩VA无码中文字幕| www.亚洲色图| 亚洲第一视频在线观看免费| 天堂亚洲国产中文在线| 亚洲一卡二卡三卡| 亚洲av成人综合网| 亚洲精华国产精华精华液| 亚洲国产精品久久久久秋霞小 | 2015日韩永久免费视频播放| 久久久久久久久久国产精品免费| 四虎国产精品免费永久在线| 午夜亚洲AV日韩AV无码大全| 亚洲AV无码成人网站久久精品大| 中文字幕亚洲综合久久男男| 亚洲精品美女久久777777| 亚洲乱亚洲乱淫久久| 亚洲精品成人图区| 亚洲JIZZJIZZ妇女| WWW免费视频在线观看播放| 女人体1963午夜免费视频| 野花高清在线观看免费3中文| 四虎影视永久免费观看网址| 亚洲综合另类小说色区色噜噜| 亚洲AV永久无码精品水牛影视| 自拍日韩亚洲一区在线| 亚洲天天在线日亚洲洲精| 亚洲欧洲日韩在线电影| 污污视频网站免费观看| 99精品在线免费观看| 亚洲 综合 国产 欧洲 丝袜| 激情内射亚洲一区二区三区| 久久精品国产亚洲av天美18 | 国产亚洲大尺度无码无码专线|