`
l_rui_ci
  • 浏览: 40237 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

xdoclet介绍

    博客分类:
  • JAVA
阅读更多

 

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 的使用手册!!

 

 

分享到:
评论

相关推荐

    Xdoclet介绍

    Xdoclet介绍[1].docx

    Xdoclet介绍及示例.........

    我们可以在java代码中使用类似于javadoc的注释,来表达更多的内容。这些额外的注释,通过使用xdoclet工具,我们可以将它们转换为我们需要的各种配置文件。先看一个简单的

    Spring In Action中文 第八部分

    本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及...

    Java开源项目Hibernate快速入门

    然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。在本文中将不...

    最简单的Hibernate入门简介

    然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比:Tomcat,Eclipse,Log4J,Struts,XDoclet,甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。在这篇文章将不涉及...

    新建 Micro用ant执行POJO自动生成映射文件及数据表soft Word 文档

    关于用hibernate映射类时涉及到一个问题: 1.先创建数据表再写JOPO类和映射... 现结合自身实践对第2种做些介绍,有问题请名位大大指正。 假设工程为myeclipse web工程。现在POJO已经编好,并且Xdoclet注释都正确编写。

    Eclipse 教程

    该教程对Eclipse的环境进行介绍,Eclipse的数据库开发,Eclipse的Ant开发,Eclipse的XDoclet开发等等

    java开放源码编程-符书源码

    关于《java开放源码编程》此书介绍了如何通过使用开放源码工具来构建一个现实的应用,以提高开发效率,降低企业开发费用。 本书共分三个部分,使基本概念、使用工具和开发应用三个过程贯穿于读者的学习当中。特别是...

    @hibernate Tag Reference

    @hibernate Tag Reference 最近在做hibernate项目,发现XDoclet中关于@hibernate Tag的介绍较少,我从网上扣下来,整理成文,供大家共享。

    JavaWeb 开发指南 PPT课件

    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的同时,还介绍了经常与Hibernate配合使用的Struts,JSF以及Spring等优秀的框架组件。另外,还涉及到了在开发中常会使用到的开源组件,包括Ant,Digester,XDoclet,Log4j,Eclipse和JFreeChart...

    Spring in Action中文版 清晰pdf part2

    内容提要 : 本书分为三大部分和两个附录,每一部分专注于Spring框架的一个领域...——Norman Richards,XDoclet in Action的作者之一 “我极力推荐这本书。” ——Jack Herrington,Code Generation in Action的作者

    Spring in Action中文版 清晰pdf part1

    内容提要 : 本书分为三大部分和两个附录,每一部分专注于Spring框架的一个领域...——Norman Richards,XDoclet in Action的作者之一 “我极力推荐这本书。” ——Jack Herrington,Code Generation in Action的作者

    Hibernate入门简介

    然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。

    深入浅出Hibernate.pdf

    作者: 夏昕 曹晓钢 唐勇 [作译者介绍] 出版社:电子工业出版社 ISBN:7121006707 上架时间:2005-4-14 出版日期:2005 年5月 开本:16开 页码:512 版次:1-1 本书由互联网上影响广泛的开放文档OpenDoc系列...

    Spring In Action中文 第三部分

    本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将...

    Spring In Action中文 第一部分

    本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将...

    Spring In Action中文 第二部分

    本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将...

    Spring In Action中文 第四部分

    本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及如何将...

    Spring In Action中文 第五部分

    本书介绍了Spring背后的原理,引领你迅速进入对框架的体验之中。结合简短代码片断和贯穿全书的持续示例,本书向你展示了如何创建简单有效的J2EE应用系统。你将看到如何使用先进的开源工具解决持久层问题,以及...

Global site tag (gtag.js) - Google Analytics