XDoclet 使自動(dòng)生成部署描述符更為便利。XDoclet 是一個(gè)代碼生成實(shí)用程序,它允許您使用象 JavaDoc 標(biāo)記之類的東西來(lái)向諸如類、方法和字段之類的語(yǔ)言特征添加元數(shù)據(jù)。隨后,它利用這些額外的元數(shù)據(jù)來(lái)生成諸如部署描述符和源代碼之類的相關(guān)文件。給這一概念起了一個(gè)名稱:面向?qū)傩缘木幊蹋╝ttribute-oriented programming)(不要與面向方面的編程(aspect-oriented programming)相混淆,這是另一個(gè) AOP)。
XDoclet 通過(guò)解析源文件來(lái)生成這些相關(guān)文件,其解析方式類似于 JavaDoc 引擎解析源代碼以創(chuàng)建 JavaDoc 文檔。實(shí)際上,XDoclet 早期的版本是依賴于 JavaDoc 的。XDoclet 和 JavaDoc 一樣,不僅能夠訪問(wèn)您以 JavaDoc 標(biāo)記形式添加到代碼的那些額外的元數(shù)據(jù),還能夠訪問(wèn)源代碼的結(jié)構(gòu),即包、類、方法和字段。隨后,它將數(shù)據(jù)的這一層次結(jié)構(gòu)樹(shù)應(yīng)用到模板。它使用整棵樹(shù)及(您可以定義的)一些模板來(lái)生成支持文件,用別的方法生成的支持文件是單調(diào)的。本教程集中討論了如何使用 XDoclet 附帶的現(xiàn)有模板。
XDoclet 提供了一個(gè) Ant 任務(wù),它使您能夠創(chuàng)建 web.xml 文件、ejb-jar.xml 文件和更多其它文件。在本教程中,您將使用 XDoclet,用 webdoclet Ant 任務(wù)生成 Web 應(yīng)用程序部署描述符。此外,您還將生成 EJB 支持文件。注:XDoclet Ant 任務(wù)并不與標(biāo)準(zhǔn) Ant 分發(fā)版一起提供。您必須從 http://xdoclet.sourceforge.net 下載 XDoclet Ant 任務(wù)。
因此,您可能會(huì)問(wèn):“關(guān)我什么事?我是一名出色的 Java/J2EE Web 開(kāi)發(fā)人員,我永遠(yuǎn)也不需要 XDoclet。”您也可能會(huì)說(shuō):“我已經(jīng)使用了 XDoclet,為什么要寫(xiě)自己的模板呢?”正如我前面所表述的那樣,您不知道您缺什么。一旦您開(kāi)始使用 XDoclet,您就會(huì)愛(ài)不釋手。一旦您開(kāi)始編寫(xiě)自己的模板,您就永遠(yuǎn)不會(huì)做重復(fù)的工作。如果您正在編寫(xiě)單調(diào)乏味的代碼,那么您大概會(huì)轉(zhuǎn)而使用 XDoclet。允許 XDoclet 生成單調(diào)的內(nèi)容,堅(jiān)持編寫(xiě)好的內(nèi)容。人類發(fā)明了計(jì)算機(jī)來(lái)讓它做那些枯燥無(wú)味的事情,而將自己解脫出來(lái),去做有創(chuàng)造性的事情。XDoclet 將開(kāi)發(fā)人員從單調(diào)無(wú)味的代碼中解脫出來(lái)。XDoclet 是您原先的 J2EE 和 Web 服務(wù)開(kāi)發(fā)過(guò)程中缺少的那一部分。它可以加快您的開(kāi)發(fā)速度。您必須掌握如何使用 XDoclet 模板。