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的。
首先需要保证ant是可用的
下载并解压xdoclet的包(我们现在使用的是xdoclet2,具体版本是xdoclet-plugins-1.0.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的使用手册!!
分享到:
相关推荐
* 生成 JavaDoc 文档:Xdoclet 可以生成 JavaDoc 文档,用于描述 Java 类和方法的信息。 * 自动生成配置文件:Xdoclet 可以生成其他类型的配置文件,如 XML、Properties 文件等。 结论 Xdoclet 是一种功能强大的...
### Xdoclet 基本概念 Xdoclet 的核心思想是通过在 Java 类中添加特定的 Javadoc 注释,这些注释包含了元数据信息。Xdoclet 工具会解析这些注释,然后自动生成相应的配置文件。例如,在上述例子中,`@hibernate....
### Xdoclet的基本概念及其应用 #### 一、Xdoclet简介 Xdoclet是一种用于生成各种类型的文档或源代码的工具,它基于Java Doclets框架。与传统的Javadoc不同,Xdoclet允许开发者在Java源文件中添加特定格式的注释...
- 用户手册:详细介绍了如何使用XDoclet,包括安装步骤、基本用法和高级特性。 - API参考:列出了所有可用的注解和插件,以及它们的参数和行为说明。 - 示例代码:提供了实际的Java源代码示例,展示如何在项目中...
1. **Xdoclet简介**:解释Xdoclet的基本概念,以及它如何通过解析Java源代码中的注释来生成Hibernate的配置文件,如`hibernate.cfg.xml`和实体类对应的`.hbm.xml`文件。 2. **安装与配置**:指导如何在开发环境中...
书中将详细介绍如何设置和使用XDoclet,以及它在实际项目中的应用场景。 2. **JUnit**:JUnit是Java语言中最流行的单元测试框架。它提供了丰富的断言方法,使得测试代码简洁且易于维护。本书将讲解JUnit的基本用法...
- XDoclet的基本概念和工作原理。 - 如何使用XDoclet生成文档和其他代码。 - 与Ant集成的方法,提高开发效率。 12. **第12章 Developing for the web** - **简介**: 使用Ant进行Web应用开发。 - **知识点**: ...
此外,压缩包中的"Xdoclet介绍.doc"和"Ant介绍.doc"提供了更详细的资料,包括这两个工具的基本概念、用法、配置示例以及常见问题解答。通过深入阅读这些文档,你将能更全面地理解Xdocle和Ant的特性,从而更好地将...
在本文中,我们将深入探讨WebLogic Web服务的学习总结,这是基于WebLogic 8.1、Xdoclet、Ant和JDK 1.4的实践项目。对于初学者来说,理解并掌握WebLogic中的Web服务发布至关重要,因为它为构建分布式应用程序提供了...
在学习Ant时,你需要理解其基本概念,如任务(Task)、目标(Target)和属性(Property)。任务是Ant的基本执行单元,它们执行特定的动作,如拷贝文件或编译代码。目标是一系列任务的集合,它们按顺序执行,通常一个...
本书共分三个部分,使基本概念、使用工具和开发应用三个过程贯穿于读者的学习当中。特别是本书提及的开发者工具箱,包含了诸多的开放源码项目,它们都是与J2EE长期协同工作的结晶。而且,书中的实例使通过重新创作...
通过本书的学习,读者不仅能够了解Hibernate的基本使用方法,还能学习到如何利用Hibernate解决实际开发中遇到的各种问题。 #### 二、准备工作 - **环境搭建**:首先介绍了如何搭建开发环境,包括下载并配置Ant等...
### 使用Java Portlet ...它不仅涵盖了portlet的基本概念和发展历程,还提供了大量的实例和最佳实践,是Java开发者和门户开发者的宝贵资源。无论是初学者还是经验丰富的开发者,都能从本书中获得有价值的信息和灵感。
本文将深入探讨Ant的基本概念、安装配置、使用方法以及自定义任务。 一、Ant的基本概念与功能 Ant是一个基于XML的构建工具,它的核心是构建脚本,通常以build.xml命名。这个脚本定义了一系列的任务(Task),每个...
《Java Development with Ant》是一本非常实用的书籍,不仅涵盖了Ant的基本概念和使用方法,还深入探讨了如何将Ant应用于各种实际场景中。无论是初学者还是有经验的Java开发者,都能从中获得有价值的指导和灵感。...
- 需要熟悉 J2EE 的基本概念,例如 EJB、应用服务器技术以及如何开发和部署服务器端应用。 - 对 Java 编程有一定基础。 #### 四、J2EE 技术简介 J2EE 提供了广泛的工具和服务来开发 Web 服务、企业级应用等。以下...
通过将XDoclet与Ant结合使用,可以在构建过程中自动生成文档,从而节省大量手动维护文档的时间。 **Web开发** 对于Web项目而言,Ant同样是非常有用的工具。除了基本的构建、测试和打包之外,Ant还可以用来支持Web...
- **Hibernate基础语义**:包括Configuration、SessionFactory、Session等概念及其使用方法。 - **Hibernate高级特性**:涵盖了XDoclet与Hibernate映射、数据检索、HQL语言、数据关联等进阶主题。 - **数据访问**...
- **数据检索**:详细介绍Criteria和HQL(Hibernate Query Language)两种查询方式的使用方法,包括基本查询、条件过滤、排序及分页等高级功能。 - **数据关联**:覆盖了一对一、一对多和多对多三种关系的建模和映射...