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 任务,并使用:
< span>name= "OA 系统构建脚本 " default= " 生成 Hibernate 配置文件 " basedir= "." >
< span>name= "src.dir" value= "${basedir}/src" />
< span>name= "build.dir" value= "${basedir}/bin" />
< span>name= "webapp.dir" value= "${basedir}/src/webapp" />
< span>name= "xdoclet.home" value= "D:/opensources/xdoclet/xdoclet-plugins-1.0.3" />
< span>id= "xdoclet.task.classpath" >
< span>dir= "${xdoclet.home}/lib" >
< span>name= "**/*.jar" />
< span>dir= "${xdoclet.home}/plugins" >
< span>name= "**/*.jar" />
< span>
name= "xdoclet"
classname= "org.xdoclet.ant.XDocletTask"
classpathref= "xdoclet.task.classpath"
/>
< span>name= " 生成 Hibernate 配置文件 " >
< span>dir= "${src.dir}/com/bjsxt/oa/model" >
< span>name= "**/*.java" />
< span>
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"
/>
< span>name= " 生成 hibernate 映射文件 " >
< span>dir= "${src.dir}/com/bjsxt/oa/model" >
< span>name= "**/*.java" />
< span>
classname= "org.xdoclet.plugin.hibernate.HibernateMappingPlugin"
version= "3.0"
destdir= "${src.dir}"
/>
以上就是一个完整的可运行的 ant 构建脚本。我们努力来理解这个文件把:
1 、 标签定义一些变量,这些变量可以通过 ${ 变量名 } 的方式引用
2 、 标签定义了类路径
3 、 标签定义了 xdoclet 任务(因为 ant 本身肯定是不包含 xdoclet 任务的)
4 、我们在下面的两个 中,使用了 标签,这个标签正是我们自己定义的。
Xdoclet 可以干什么?
Xdoclet 实际上就是一个自动代码生成的工具,它可以生成各种各样的代码或配置文件(如果你很清楚 xdoclet ,你也可以对它进行扩展)。在默认的情况下, xdoclet 已经给我们提供了很多的解决方案。这些解决方案叫做 plugin ,即插件。在 xdoclet 的官方网站上: http://xdoclet.codehaus.org ,我们可以获得关于它支持的所有的 plugin 的情况。
Xdoclet 通过 plugin 来支持代码的自动生成。我们要使用 xdoclet ,可以将它定义为 ant 的一个任务(如上所述)。然后就可以使用 xdoclet 了。在 标签内部使用 xdoclet 。由于 xdoclet 通常用来对源文件进行扫描,并读取源文件中的注释,然后再根据这些注释生成相应的配置文件,所以,通常我们需要定义让 xdoclet 扫描哪些源代码文件。对于这个需要,我们通过 标签来满足!
通过 标签,我们可以来使用 xdoclet 的众多 plugin 。上述例子,我们使用了 xdoclet 对 hibernate 支持的 plugin 。
具体如何使用这些 plugin ,请参考这些 plugin 的使用手册!!
分享到:
相关推荐
### Xdoclet 基本概念 Xdoclet 的核心思想是通过在 Java 类中添加特定的 Javadoc 注释,这些注释包含了元数据信息。Xdoclet 工具会解析这些注释,然后自动生成相应的配置文件。例如,在上述例子中,`@hibernate....
在本教程中,我们将学习 Xdoclet 的基本概念和使用方法。 什么是 Xdoclet? Xdoclet 是一种基于 Java 的工具,用于生成配置文件、文档和其他相关资源。它使用特殊的注释来标记 Java 代码,生成对应的配置文件,如 ...
### Xdoclet的基本概念及其应用 #### 一、Xdoclet简介 Xdoclet是一种用于生成各种类型的文档或源代码的工具,它基于Java Doclets框架。与传统的Javadoc不同,Xdoclet允许开发者在Java源文件中添加特定格式的注释...
1. **Xdoclet简介**:解释Xdoclet的基本概念,以及它如何通过解析Java源代码中的注释来生成Hibernate的配置文件,如`hibernate.cfg.xml`和实体类对应的`.hbm.xml`文件。 2. **安装与配置**:指导如何在开发环境中...
- 用户手册:详细介绍了如何使用XDoclet,包括安装步骤、基本用法和高级特性。 - API参考:列出了所有可用的注解和插件,以及它们的参数和行为说明。 - 示例代码:提供了实际的Java源代码示例,展示如何在项目中...
本书将讲解JUnit的基本用法,包括如何编写测试用例、如何组织测试套件、异常处理以及如何使用mock对象进行隔离测试等。了解和熟练使用JUnit对于保证代码质量至关重要。 3. **WebWork**:WebWork是一款轻量级的MVC...
在学习Ant时,你需要理解其基本概念,如任务(Task)、目标(Target)和属性(Property)。任务是Ant的基本执行单元,它们执行特定的动作,如拷贝文件或编译代码。目标是一系列任务的集合,它们按顺序执行,通常一个...
此外,压缩包中的"Xdoclet介绍.doc"和"Ant介绍.doc"提供了更详细的资料,包括这两个工具的基本概念、用法、配置示例以及常见问题解答。通过深入阅读这些文档,你将能更全面地理解Xdocle和Ant的特性,从而更好地将...
本文将深入探讨Ant的基本概念、安装配置、使用方法以及自定义任务。 一、Ant的基本概念与功能 Ant是一个基于XML的构建工具,它的核心是构建脚本,通常以build.xml命名。这个脚本定义了一系列的任务(Task),每个...
本书共分三个部分,使基本概念、使用工具和开发应用三个过程贯穿于读者的学习当中。特别是本书提及的开发者工具箱,包含了诸多的开放源码项目,它们都是与J2EE长期协同工作的结晶。而且,书中的实例使通过重新创作...
对于开发者来说,理解和掌握这些概念是构建基于WebLogic的Web服务应用的基础。通过实践和不断学习,你可以进一步提升在Web服务领域的技能,例如,了解WSDL(Web服务描述语言)、SOAP(简单对象访问协议)以及WS-I...
1. **基础概念**:首先介绍了portlet的基本概念及其在门户中的作用。 2. **环境搭建**:详细说明了如何设置开发环境,包括安装必要的软件和工具。 3. **portlet开发**:深入讲解了如何使用Java Portlet API开发...
Spring、Hibernate和Struts是Java Web开发中的三大框架,它们分别负责不同的职责,共同构建了一个高效、松耦合的应用...通过实践这些内容,你将能够构建一个基本的Java Web应用,并逐步熟悉三大框架的协同工作方式。
掌握SQL语言,理解关系型数据库的基本概念,并通过JDBC(Java Database Connectivity)进行数据库连接和操作。了解ANT工具用于自动化构建,JDO(Java Data Objects)用于对象关系映射,以及DAO(Data Access Object...
书籍基本信息 - **书名**:《Java 开源编程》 - **出版社**:Wiley Publishing, Inc. - **出版时间**:2004年 - **作者**: - Joe Walnes - Ara Abrahamian - Mike Cannon-Brookes - Pat Lightbody - **版权...
1. **面向对象编程技术**:理解面向对象的基本概念,如封装、继承、多态等。 2. **Java 语言**:熟悉 Java 语法,包括数据类型、控制结构、异常处理等。 3. **Java EE API**:了解 Java EE 核心组件,如 Servlets、...
- **MyEclipse EJB项目的概念**:MyEclipse EJB项目是一种特殊的Eclipse Java项目,除了标准的Java项目结构外,还包括一个`META-INF`文件夹,用于存放与EJB相关的元数据文件,如`ejb-jar.xml`等。 - **项目结构**:...
除了上述基础概念,Hibernate还提供了许多高级特性,如缓存策略、二级缓存、延迟加载、分页查询、事务管理等。这些特性对于构建高性能和可扩展的应用程序至关重要。例如,缓存策略可以显著提升应用程序的响应速度,...
- **XDoclet与Hibernate映射**:XDoclet是一种用于生成源代码或XML配置文件的工具,这里讲解了如何使用XDoclet生成Hibernate映射文件。 - **数据检索**:这部分内容详细介绍了使用Criteria API和HQL进行数据检索的...