`
gdntx
  • 浏览: 21100 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

xdoclet应用

阅读更多

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 的。

<!-- [if !supportLists]-->1、 <!-- [endif]-->首先需要保证 ant 是可用的

<!-- [if !supportLists]-->2、 <!-- [endif]-->下载并解压 xdoclet 的包(我们现在使用的是 xdoclet2 ,具体版本是 xdoclet-plugins-1.0.3 )。

<!-- [if !supportLists]-->3、 <!-- [endif]--> ant 构建工具中定义 xdoclet 任务,并使用:

 

<?xml version="1.0" encoding="GBK"?>

<project name= "OA 系统构建脚本 " default= " 生成 Hibernate 配置文件 " basedir= "." >

<property name= "src.dir" value= "${basedir}/src" />

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

  • lib.rar (2.9 MB)
  • 下载次数: 21
分享到:
评论

相关推荐

    xdoclet-bin-1.2.1.zip

    J2EE代码生成只是XDoclet的一个应用方面,它可以完成的任务已经远远超越了J2EE和项目文档的生成。”  目前的版本可以为web、ejb、struts、webwork、hibnaate、jdo、jmx等等生成描述文件、源码等,XDoclet提供了ant...

    xdoclet-base-locale-1.2.1.jar

    J2EE代码生成只是XDoclet的一个应用方面,它可以完成的任务已经远远超越了J2EE和项目文档的生成。”  目前的版本可以为web、ejb、struts、webwork、hibnaate、jdo、jmx等等生成描述文件、源码等,XDoclet提供了ant...

    xdoclet-src-1.2.3.tgz

    J2EE代码生成只是XDoclet的一个应用方面,它可以完成的任务已经远远超越了 J2EE和项目文档的生成。”  目前的版本可以为web、ejb、struts、webwork、hibnaate、jdo、jmx等等生成描述文件、源码等,XDoclet提供了ant...

    xdoclet标签

    xdoclet标签,应用于生成脚本文件

    学习XDoclet教程

    帮助你了解和掌握xdoclet的开发和应用,当然,耐心是最重要的保证.

    Spring In Action中文 第八部分

    ” ——Norman Richards,XDoclet in Action的作者之一 “我极力推荐这本书。” ——Jack Herrington,Code Generation in Action的作者 ----总共8部分rar下载完后解压 ----- Spring in Action. ...

    XP开发模式:第一个最简单的Web Servlet应用演示例子

    如果有问题,欢迎mail联系:arklis@126.com&lt;br&gt;运行环境是Window XP Professional SP2. 使用Tomcat 6.0, JDK 1.6, Xdoclet 1.2.3, Ant 1.7完成的第一个web工程演示应用。为完成这个例子,需要把log4j.jar文档...

    xdoclet and Prj Extensions for NetBeans-开源

    NbXDoclet for NetBeans项目有助于开发基于xdoclet的应用程序。 它包含用于Hibernate的模板。 该项目还实现了项目扩展(性质)。

    FreeMarker文档.CHM

    FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序

    JavaWeb 开发指南 PPT课件

    网站开发指南 清华大学出版社 1章 JSP技术简介 2章 JSP语法 3章 JSP内置对象 4章 Servlet技术介绍 5章 JavaBean与JSP技术 6章 JSP文件操作 ...24章 使用XDoclet简化JSP 25章 使用Ant管理JSP Web应用

    XP开发模式:第一个JSP标签处理程序的Web Servlet应用演示例子

    如果有问题,请mail联系:arklis@126.com&lt;br&gt;运行环境是Window XP Professional SP2. 使用Tomcat 6.0, JDK 1.6, Xdoclet 1.2.3, Ant 1.7完成的第一个JSP自定义标签处理程序的web工程演示应用 (2. web ...

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

    而且,书中的实例使通过重新创作著名的Sun Java 蓝图——PetStore应用,将JUnit、Ant、Hibernate、WebWork、SiteMesh、XDoclet以及Lucene等工具的应用演绎得淋漓尽致,有利于读者在开发过程中提高可用性、结构简洁性...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

    第1章 Java应用分层架构及软件模型  1.1 应用程序的分层体系结构  1.1.1 区分物理层和逻辑层  1.1.2 软件层的特征  1.1.3 软件分层的优点  1.1.4 软件分层的缺点  1.1.5 Java应用的持久化层  1.2 软件的模型 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第1章 Java应用分层架构及软件模型  1.1 应用程序的分层体系结构  1.1.1 区分物理层和逻辑层  1.1.2 软件层的特征  1.1.3 软件分层的优点  1.1.4 软件分层的缺点  1.1.5 Java应用的持久化层  1.2 软件的模型 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

    第1章 Java应用分层架构及软件模型  1.1 应用程序的分层体系结构  1.1.1 区分物理层和逻辑层  1.1.2 软件层的特征  1.1.3 软件分层的优点  1.1.4 软件分层的缺点  1.1.5 Java应用的持久化层  1.2 软件的模型 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

    第1章 Java应用分层架构及软件模型  1.1 应用程序的分层体系结构  1.1.1 区分物理层和逻辑层  1.1.2 软件层的特征  1.1.3 软件分层的优点  1.1.4 软件分层的缺点  1.1.5 Java应用的持久化层  1.2 软件的模型 ...

Global site tag (gtag.js) - Google Analytics