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
的使用手册!!
分享到:
相关推荐
J2EE代码生成只是XDoclet的一个应用方面,它可以完成的任务已经远远超越了J2EE和项目文档的生成。” 目前的版本可以为web、ejb、struts、webwork、hibnaate、jdo、jmx等等生成描述文件、源码等,XDoclet提供了ant...
J2EE代码生成只是XDoclet的一个应用方面,它可以完成的任务已经远远超越了J2EE和项目文档的生成。” 目前的版本可以为web、ejb、struts、webwork、hibnaate、jdo、jmx等等生成描述文件、源码等,XDoclet提供了ant...
J2EE代码生成只是XDoclet的一个应用方面,它可以完成的任务已经远远超越了 J2EE和项目文档的生成。” 目前的版本可以为web、ejb、struts、webwork、hibnaate、jdo、jmx等等生成描述文件、源码等,XDoclet提供了ant...
xdoclet标签,应用于生成脚本文件
帮助你了解和掌握xdoclet的开发和应用,当然,耐心是最重要的保证.
” ——Norman Richards,XDoclet in Action的作者之一 “我极力推荐这本书。” ——Jack Herrington,Code Generation in Action的作者 ----总共8部分rar下载完后解压 ----- Spring in Action. ...
如果有问题,欢迎mail联系:arklis@126.com<br>运行环境是Window XP Professional SP2. 使用Tomcat 6.0, JDK 1.6, Xdoclet 1.2.3, Ant 1.7完成的第一个web工程演示应用。为完成这个例子,需要把log4j.jar文档...
NbXDoclet for NetBeans项目有助于开发基于xdoclet的应用程序。 它包含用于Hibernate的模板。 该项目还实现了项目扩展(性质)。
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序
网站开发指南 清华大学出版社 1章 JSP技术简介 2章 JSP语法 3章 JSP内置对象 4章 Servlet技术介绍 5章 JavaBean与JSP技术 6章 JSP文件操作 ...24章 使用XDoclet简化JSP 25章 使用Ant管理JSP Web应用
如果有问题,请mail联系:arklis@126.com<br>运行环境是Window XP Professional SP2. 使用Tomcat 6.0, JDK 1.6, Xdoclet 1.2.3, Ant 1.7完成的第一个JSP自定义标签处理程序的web工程演示应用 (2. web ...
而且,书中的实例使通过重新创作著名的Sun Java 蓝图——PetStore应用,将JUnit、Ant、Hibernate、WebWork、SiteMesh、XDoclet以及Lucene等工具的应用演绎得淋漓尽致,有利于读者在开发过程中提高可用性、结构简洁性...
第1章 Java应用分层架构及软件模型 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 ...
第1章 Java应用分层架构及软件模型 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 ...
第1章 Java应用分层架构及软件模型 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 ...
第1章 Java应用分层架构及软件模型 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 ...