`

Xdoclet学习笔记(XDoclet 如何工作)

阅读更多

XDoclet 操作
图 1 显示了 XDoclet 要求的输入和生成的输出。

图 1. XDoclet 黑盒子
图 1

您可以看到,包含嵌入式 XDoclet 标签的 Java 源代码是系统的输入。在 Apache Ant 的驱动下,XDoclet 处理输入的代码,生成的输出文本文件可以是 Java 源代码、HTML 页面、XML 文件等。为了处理输入,XDoclet 需要使用模板(保存在 .xdt 文件中)和标签处理器(用 Java 编码)。XDoclet 把模板和标签处理器打包成“模块”,不同的“模块”处理不同的问题域。

XDoclet 生成的结构模型
XDoclet 对包含嵌入式 XDoclet 标签的输入 Java 源代码进行解析,并为代码建立非常详细的结构模型。结构模型中的每个元素都代表源代码中的一个 Java 结构。图 2 显示的结构模型,揭示了 XDoclet 跟踪的代码构造和关系。

图 2. XDoclet 的解析的 Java 源代码的内部结构模型
图 2

图 2 中的结构模型跟踪类、接口、方法之类的代码构造(模型元素)。该模型还跟踪元素之间的关系,例如继承和接口实现。以内联注释的形式嵌入在源代码中的 XDoclet 标签被解析为模型元素的属性,并被跟踪

深入 XDoclet
图 3 显示了 XDoclet 的内部结构,揭示了使其运行的功能块。

图 3. XDoclet 内部的功能块
图 3

如图 3 所示,Apache Ant 在运行的时候控制着 XDoclet 的配置和操作。XDoclet 解析输入的 Java 源代码,并在内存中生成结构模型。模板引擎通过处理一组模板和标签处理器,生成输出文件。模板和标签处理器可以是内置的,也可以是定制的。在代码生成期间,模板和标签处理器拥有对结构模型的完全访问。

XDoclet 虚假的复杂性
XDoclet 实质上就是一个通用的 Javadoc 引擎(请参阅侧栏,通用的 Javadoc 引擎)。那么,是什么让它看起来这么复杂呢?答案在于:XDoclet 几乎从未被单独讨论过,而总是藏在其他许多复杂的技术中。图 4 显示了了围绕在 XDoclet 周围的复杂性迷雾(请参阅侧栏为什么 XDoclet 看起来比实际的要复杂得多)。

为什么 XDoclet 看起来比实际的要复杂得多
Apache Ant 自动进行 Java 软件的生成过程。构建管理过程通常是生产项目中更复杂过程中的一部分。构建管理的术语和概念被集成到 Apache Ant 中,而且是理解其操作的先决条件。成熟的 Ant 脚本可能会非常复杂。Ant 的每个新版本,都会引入一些新的特性集,从而进一步增加了复杂性。这形成了 XDoclet 表面的复杂性,因为 XDoclet 需要 Ant 才能执行。

XDoclet 处理的问题领域是复杂性的另一个来源。在发布 XDoclet 的时候,XDoclet 已经可以为 EJB 组件集成、J2EE Web 容器集成、Hibernate 持久性层、Struts 框架、Java 管理扩展(JMX)等生成代码。这些问题领域中的每一个领域都有一大套该领域专用的行话和概念。从这些复杂的问题领域出来的问题,经常主导着 XDoclet 的讨论,这也提高了 XDoclet 表面的复杂性。可能是“只见森林,不见树木”。

图 4. XDoclet 的复杂耦合
Figure 4

在图 4 中,您可以看到 XDoclet 与以下内容是紧密相关的:

  • Apache Ant,它控制着 XDoclet 的操作。XDoclet 是作为一组 Ant 任务存在的,没有 Ant 则不能执行。
  • 与生成文件关联的具体问题领域的一些细节。
分享到:
评论

相关推荐

    xdoclet1 xdoclet1 spring3.0.5、struts1.3、struts2.1、 servlet

    本资源我在学习xdoclet过程中,总结完成的xoclet配置示例。其中包括xdoclet2与hibernate3.6的整合xdoclet1.2.3分别与spring3.0.5、struts1.3、struts2.1、 servlet的整合配置。其中还有相应的.xdt文件模板,其中...

    xdoclet-bin-1.2.1.zip和xdoclet-bin-1.2.3.zip

    xdoclet-bin-1.2.1.zip和xdoclet-bin-1.2.3.zip

    xdoclet-1.2.1.jar

    xdoclet-1.2.1.jar jar包,缺少的可以拿去

    xdoclet-bin-1.2.1

    xdoclet-bin-1.2.1,xdoclet-bin-1.2.1,xdoclet-bin-1.2.1

    xdoclet 生成hbm文件

    在myeclipse中用xdoclet生成hbm文件

    xdoclet-bin-1.2.1.zip

     正如《XDoclet in Action》部分章节中文版一文中所说的“当初,XDoclet因为可以自动生成EJB繁杂的接口和部署描述文件而声名鹊起。然而,现在的XDoclet已经发展成了一个全功能的、面向属性的代码生成框架。J2EE代码...

    xdoclet-bin-1.2.3

    xdoclet-bin-1.2.3.zip

    xdoclet-base-locale-1.2.1.jar

     正如《XDoclet in Action》部分章节中文版一文中所说的“当初,XDoclet因为可以自动生成EJB繁杂的接口和部署描述文件而声名鹊起。然而,现在的XDoclet已经发展成了一个全功能的、面向属性的代码生成框架。J2EE代码...

    XDoclet 与Hibernate 映射

    XDoclet 与Hibernate 映射 目前,生成POJO的Hibernate映射文件主要有以下三种方式: ①.手动编码、 ②.由数据库导出配置文件、 ③.XDoclet根据POJO自动生成配置文件。

    XDoclet1.2+XDoclet教程

    XDoclet1.2+XDoclet教程

    xdoclet-1.2.1.zip

    xdoclet-1.2.1.zip

    xdoclet-src-1.2.3.tgz

    XDoclet可以通过你在java源代码中的一些特殊的注释信息,自动为你生成配置文件、源代码等等,例如web、ejb的部署描述文件、为你生成struts的struts-config.xml配置文件、javascript校验等。  正如《XDoclet in ...

    XDoclet2辅助开发hibernate3

    使用XDoclet2生成hibernate映射文件的简单实例

    xdoclet-相关配置实例

    通过Ant、xdoclet结合,来维护和管理工程的相关配置和部署。

    xdoclet-1.2.6.jar

    XDoclet是在Rickard Oberg创立的EJBDoclet基础上演变到来的一个工具

    xdoclet-plugins-1.0.3.rar

    xdoclet xdoclet-plugins-1.0.3.rar

    Java通用代码生成实用程序XDoclet(源码包)

    XDoclet 是一个通用的代码生成实用程序,是一个扩展的Javadoc Doclet引擎,它允许您使用象 JavaDoc 标记之 类的东西来向诸如类、方法和字段之类的语言特征添加元数据。随后,它利用这些额外的元数据来生成诸如部署...

    xdoclet-plugins-1.0.3

    xdoclet 的帮助文档,xdoclet的配置,还有标签的使用。。。。。。

Global site tag (gtag.js) - Google Analytics