Xdoclet 基本概念
我们可以在 java 代码中使用类似于 javadoc 的注释,来表达更多的内容。这些额外的注释,通过使用 xdoclet 工具,我们可以将它们转换为我们需要的各种配置文件。先看一个简单的例子:
比如有一个 java 文件的源代码如下:
/** * @hibernate.class * table="T_Party" */ public class Party {
/** * @hibernate.id * generator-class="native" */ private int id;
/** * @hibernate.many-to-one * column="parentid" */ private Party parent;
/** * @hibernate.set * @hibernate.key * column = "parentid" * @hibernate.one-to-many * class = "com.bjsxt.oa.model.Party" */ private Set children;
/** * @hibernate.property * column="thename" */ private String name;
/** * @hibernate.property */ private String sn;
/** * @hibernate.property */ private String description;
/** * * @return */ public Set getChildren() { return children; } public void setChildren(Set children) { this.children = children; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; }
/** */ public int getId() { return id; } public void setId(int id) { this.id = id; }
public String getName() { return name; } public void setName(String name) { this.name = name; } public Party getParent() { return parent; } public void setParent(Party parent) { this.parent = parent; } public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; } }
|
通过 xdoclet ,我们可以得到关于这个类的 Hibernate 映射文件,如下:
<? xml version = "1.0" encoding = "ISO-8859-1" ?> <! DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
< hibernate-mapping > < class table = "T_Party" name = "com.bjsxt.oa.model.Party" > < id name = "id" > < generator class = "native" /> </ id > < many-to-one column = "parentid" name = "parent" /> < set name = "children" > < key column = "parentid" /> < one-to-many class = "com.bjsxt.oa.model.Party" /> </ set > < property name = "name" column = "thename" /> < property name = "sn" /> < property name = "description" /> </ class > </ hibernate-mapping >
|
如何开始使用 Xdoclet ?
Xdoclet 不是单独可以运行的工具(不像 Ant 工具),它可以与其它工具一起配合运行,如 Ant 。我们下面的例子就是基于 Ant 和 xdoclet 的。
1、 首先需要保证 ant 是可用的
2、 下载并解压 xdoclet 的包(我们现在使用的是 xdoclet2 ,具体版本是 xdoclet-plugins-1.0.3 )。
3、 在 ant 构建工具中定义 xdoclet 任务,并使用:
<?xml version="1.0" encoding="GBK"?> <project name= "OA 系统构建脚本 " default= " 生成 Hibernate 配置文件 " basedir= "." >
<property name= "src.dir" value= "${basedir}/src" /> <property name= "build.dir" value= "${basedir}/bin" /> <property name= "webapp.dir" value= "${basedir}/src/webapp" /> <property name= "xdoclet.home" value= "D:/opensources/xdoclet/xdoclet-plugins-1.0.3" />
<!-- Build classpath --> <path id= "xdoclet.task.classpath" > <fileset dir= "${xdoclet.home}/lib" > <include name= "**/*.jar" /> </fileset> <fileset dir= "${xdoclet.home}/plugins" > <include name= "**/*.jar" /> </fileset> </path> <taskdef name= "xdoclet" classname= "org.xdoclet.ant.XDocletTask" classpathref= "xdoclet.task.classpath" />
<target name= " 生成 Hibernate 配置文件 " > <xdoclet> <fileset dir= "${src.dir}/com/bjsxt/oa/model" > <include name= "**/*.java" /> </fileset> <component classname= "org.xdoclet.plugin.hibernate.HibernateConfigPlugin" destdir= "${src.dir}" version= "3.0" hbm2ddlauto= "update" jdbcurl= "jdbc:mysql://127.0.0.1/oa_200706" jdbcdriver= "com.mysql.jdbc.Driver" jdbcusername= "root" jdbcpassword= "mysql" dialect= "org.hibernate.dialect.MySQLDialect" showsql= "true" /> </xdoclet> </target> <target name= " 生成 hibernate 映射文件 " > <xdoclet> <fileset dir= "${src.dir}/com/bjsxt/oa/model" > <include name= "**/*.java" /> </fileset> <component classname= "org.xdoclet.plugin.hibernate.HibernateMappingPlugin" version= "3.0" destdir= "${src.dir}" /> </xdoclet> </target> </project>
|
以上就是一个完整的可运行的 ant 构建脚本。我们努力来理解这个文件把:
1 、 <property> 标签定义一些变量,这些变量可以通过 ${ 变量名 } 的方式引用
2 、 <path> 标签定义了类路径
3 、 <taskdef> 标签定义了 xdoclet 任务(因为 ant 本身肯定是不包含 xdoclet 任务的)
4 、我们在下面的两个 <target> 中,使用了 <xdoclet> 标签,这个标签正是我们自己定义的。
Xdoclet 可以干什么?
Xdoclet 实际上就是一个自动代码生成的工具,它可以生成各种各样的代码或配置文件(如果你很清楚 xdoclet ,你也可以对它进行扩展)。在默认的情况下, xdoclet 已经给我们提供了很多的解决方案。这些解决方案叫做 plugin ,即插件。在 xdoclet 的官方网站上: http://xdoclet.codehaus.org ,我们可以获得关于它支持的所有的 plugin 的情况。
Xdoclet 通过 plugin 来支持代码的自动生成。我们要使用 xdoclet ,可以将它定义为 ant 的一个任务(如上所述)。然后就可以使用 xdoclet 了。在 <xdoclet> 标签内部使用 xdoclet 。由于 xdoclet 通常用来对源文件进行扫描,并读取源文件中的注释,然后再根据这些注释生成相应的配置文件,所以,通常我们需要定义让 xdoclet 扫描哪些源代码文件。对于这个需要,我们通过 <fileset> 标签来满足!
通过 <component> 标签,我们可以来使用 xdoclet 的众多 plugin 。上述例子,我们使用了 xdoclet 对 hibernate 支持的 plugin 。
具体如何使用这些 plugin ,请参考这些 plugin 的使用手册!!
发表评论
-
Servlet简单例子
2009-06-22 11:21 3758例子一: import java.io.IOExcept ... -
尚学堂OA系统中ACL的CRUD解释
2009-03-19 01:43 944尚学堂OA系统中ACL 中用 int 表示权限是什么意思一个 ... -
static{}的意思.
2009-03-22 23:44 757static{}中的代码表示是在类装载的时候执行一次,且仅执行 ... -
static关键字的解释
2009-03-23 00:08 633static关键字可以用来修饰类的变量,方法和内部类 ... -
struts-2.x中文传输的出现的乱码解决.
2009-04-03 13:01 720我已经在struts.xml中添加了<constant ... -
Tapestry4.1.2入门
2009-04-06 10:35 604作者:Kenny Lee | 来源:http://www.to ... -
Ioc容器的革命性优点
2009-04-17 10:36 641http://www.jdon.com 2005/08/06 ... -
abstract class与interface区别
2009-04-18 19:20 697abstract class和interface是Ja ... -
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。
2009-04-18 20:37 984以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 ... -
写一个Singleton出来。
2009-04-18 21:58 818Singleton模式主要作用是保证在Java应用程序中,一个 ... -
一道关于静态变量的初始化顺序面试题
2009-05-18 01:39 867package com.test; pub ... -
如何得到某个类所对应的class对象
2009-05-18 14:13 6171、在的类的.class语法 2、通过类的getClass( ... -
面试题(String 对象)
2009-05-19 15:13 582package com.test; public class ... -
链接MySQL的代码片断
2009-05-19 16:38 576public class DB {public static ... -
Ant介绍
2009-05-27 00:33 719Ant 是什么? Ant 是一个构建工具,它可以帮助我们 ... -
关于log4j
2009-05-28 13:47 628Log日志:主要用于记录程序运行的情况,以便于程序在部署之后的 ...
相关推荐
Xdoclet介绍[1].docx
我们可以在java代码中使用类似于javadoc的注释,来表达更多的内容。这些额外的注释,通过使用xdoclet工具,我们可以将它们转换为我们需要的各种配置文件。先看一个简单的
本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及...
然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。在本文中将不...
然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比:Tomcat,Eclipse,Log4J,Struts,XDoclet,甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。在这篇文章将不涉及...
关于用hibernate映射类时涉及到一个问题: 1.先创建数据表再写JOPO类和映射... 现结合自身实践对第2种做些介绍,有问题请名位大大指正。 假设工程为myeclipse web工程。现在POJO已经编好,并且Xdoclet注释都正确编写。
该教程对Eclipse的环境进行介绍,Eclipse的数据库开发,Eclipse的Ant开发,Eclipse的XDoclet开发等等
关于《java开放源码编程》此书介绍了如何通过使用开放源码工具来构建一个现实的应用,以提高开发效率,降低企业开发费用。 本书共分三个部分,使基本概念、使用工具和开发应用三个过程贯穿于读者的学习当中。特别是...
@hibernate Tag Reference 最近在做hibernate项目,发现XDoclet中关于@hibernate Tag的介绍较少,我从网上扣下来,整理成文,供大家共享。
4章 Servlet技术介绍 5章 JavaBean与JSP技术 6章 JSP文件操作 7章 JSP Web应用的会话管理 8章 JSP 2.4技术 9章 自定义JSP标签 10章 JSP标准标签库(JSTL) 11章 关系数据库与JDBC基础 12章 JSP与Java Mail Web应用 13...
本书在讲解Hibernate的同时,还介绍了经常与Hibernate配合使用的Struts,JSF以及Spring等优秀的框架组件。另外,还涉及到了在开发中常会使用到的开源组件,包括Ant,Digester,XDoclet,Log4j,Eclipse和JFreeChart...
内容提要 : 本书分为三大部分和两个附录,每一部分专注于Spring框架的一个领域...——Norman Richards,XDoclet in Action的作者之一 “我极力推荐这本书。” ——Jack Herrington,Code Generation in Action的作者
内容提要 : 本书分为三大部分和两个附录,每一部分专注于Spring框架的一个领域...——Norman Richards,XDoclet in Action的作者之一 “我极力推荐这本书。” ——Jack Herrington,Code Generation in Action的作者
然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。
作者: 夏昕 曹晓钢 唐勇 [作译者介绍] 出版社:电子工业出版社 ISBN:7121006707 上架时间:2005-4-14 出版日期:2005 年5月 开本:16开 页码:512 版次:1-1 本书由互联网上影响广泛的开放文档OpenDoc系列...
本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将...
本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将...
本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将...
本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将...
本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及...