xdoclet设计心得

xdoclet设计心得

ID:25241864

大小:96.17 KB

页数:24页

时间:2018-11-19

xdoclet设计心得_第1页
xdoclet设计心得_第2页
xdoclet设计心得_第3页
xdoclet设计心得_第4页
xdoclet设计心得_第5页
资源描述:

《xdoclet设计心得》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、设计心得——用XDoclet减少代码膨胀(转)2007年09月14日星期五下午11:07开放源代码的XDoclet代码生成引擎,是许多领先的Java框架不可缺少的组成部分,常常被用作面向属性的编程和持续集成的引擎。但是XDoclet还有一些不太惹人注目的地方:对初级开发人员来说,它太难掌握、太难精通。在这篇文章中,流行作者SingLi以XDoclet为对象,揭示了其内部简单却优雅的设计,使您能够理解这项技术,并将它应用在实践当中。    XDoclet能够很容易成为您的Java编程工具箱中的一个更加通用的跨技术代码生成工具。不幸的是,开发人员经常忽视XDoclet的一般用途,只有将它捆绑在

2、大型开发框架或者IDE中,作为其中的一个隐藏元素时,才会用到它。人们常常认为很难将XDoclet应用在定制解决方案上。这篇文章的目的就是要消除这个迷惑,把XDoclet从常见的复杂陷阱中解脱出来,并向您展示了如何能够利用这个代码生成引擎。    我会用一个实际的例子演示XDoclet的用途,该例子将接收一个POJO(plainoldJavaobject),并用XDoclet生成完整Web应用程序的全部文件,这些文件是把数据输入关系数据库所必需的。该示例使用了XDoclet的自定义模板代码生成功能,以及它对Hibernate对象关系映射工具、StructWeb应用程序框架和应用程序服务器的内

3、部支持。(请参阅参考资料)。bitsCN.com中国网管联盟    智能代码生成器    XDoclet的核心功能是根据以下组合来生成代码的(或者生成其他配置/数据文件):    进行特殊标记的Java源文件。    预先定义的模板。    与其他基于模板的代码生成技术(例如Velocity;请参阅参考资料)相比,XDoclet具有以下独特优势:    XDoclet与ApacheAnt(请参阅参考资料)紧密集成,从而提供了高度自动化的操作。    把控制代码生成和模板处理的XDoclet标签作为内联注释嵌入到Java源代码文件中。这消除了同步多个相关文件和控制文件的需要。    XDoc

4、let的内置Java解析器使用它对Java代码结构的深入理解,为输入的Java代码建立内部结构模型。该结构模型又经常被叫作元数据(metadata),因为它包含与关联代码有关的数据。    XDoclet的模板生成逻辑拥有对输入Java代码的内部结构模型的完全访问权。    接下来,我将进一步研究XDoclet是如何工作的,以帮助您理解这些特性。    XDoclet操作    图1显示了XDoclet要求的输入和生成的输出。    图1.XDoclet黑盒子需要什么来搜一搜吧so.bitsCN.com     您可以看到,包含嵌入式XDoclet标签的Java源代码是系统的输入。在Apa

5、cheAnt的驱动下,XDoclet处理输入的代码,生成的输出文本文件可以是Java源代码、HTML页面、XML文件等。为了处理输入,XDoclet需要使用模板(保存在.xdt文件中)和标签处理器(用Java编码)。XDoclet把模板和标签处理器打包成“模块”,不同的“模块”处理不同的问题域。    XDoclet生成的结构模型    XDoclet对包含嵌入式XDoclet标签的输入Java源代码进行解析,并为代码建立非常详细的结构模型。结构模型中的每个元素都代表源代码中的一个Java结构。图2显示的结构模型,揭示了XDoclet跟踪的代码构造和关系。    图2.XDoclet的解析

6、的Java源代码的内部结构模型     图2中的结构模型跟踪类、接口、方法之类的代码构造(模型元素)。该模型还跟踪元素之间的关系,例如继承和接口实现。以内联注释的形式嵌入在源代码中的XDoclet标签被解析为模型元素的属性,并被跟踪。bbs.bitsCN.com国内最早的网管论坛    通用的Javadoc引擎    能够理解Java代码结构模型的智能代码生成引擎不是什么新概念。实际上,它是JDK自带的Javadoc工具的运作方式。通过解析带有特殊Javadoc标签的Java源文件,Javadoc工具可以为所有Java程序的内置结构元素(包括类、接口、字段和方法)生成HTML文档。Java

7、doc还具有特殊Java语言概念方面的知识,例如继承、抽象类、存储类和修饰符。    XDoclet的诞生,来自这样一个观察:适用于任意代码生成的Javadoc的通用版本,在许多编程场合下会极为有用。但是,实际的Javadoc源代码不是为通用的代码生成设计的,而只是为了生成HTML文档。由于无法重用现有代码,XDoclet开发小组从头开始重写了引擎,并显著优化了它的性能。    深入XDoclet    图3显示了XDo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。