论坛首页 Java企业应用论坛

代码生成工具示例工程

浏览 8831 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-07-06  
大约两年前私下编写一个wiki时使用的代码生成工具,最近想继续这个wiki项目(http://sourceforge.net/projects/txdoc),也顺便吧这个代码生成工具整理出来。

PPT见:http://www.iteye.com/topic/95580

eclipse项目,文件太大,只好分成三分上传。

其中,代码生成工具及一些基础类库在web/WEB-INF/lib/xdoclet-xidea-plus.jar文件中(附源码)

引用

目录结构
    src/main:   源文件
    src/gen:     生成的源文件及配置文件
    src/test:    测试类
    build:       ant 脚本(build.xml)、ant配置、构建过程的临时目录(temp)
    web:         web根目录
    lib:          编译器附加类库(如ant任务需要的lib)
    doc:         文档目录
    doc/xdoclet: xdoclet参考文档
   
   
一.创建持久类:
  1.改类为一个有诺干属性的简单java类
  2.为持久类打上hibernate标记:
     必要标记:hibernate.class(指定该类为持久类,无必选属性,可选属性参考xdoclet文档)
            hibernate.id (指定持久类主键,必选属性generator-class,指定主键生成算法,常用算法有uuid.hex、hilo、assigned....)
     常用标记:hibernate.property(指定持久属性,无必选属性)
            hibernate.cache(预定义查询,必选属性 name,query)
            hibernate.one-to-many,hibernate.many-to-one等,指定对象关系,比较复杂,建议先看hibernate官方文档、xdoclet文档
             
  3.打开项目下build/build.xml、运行hibernate任务,该任务将生成hibernate映射文件、hibernate dao实现、hibernate的spring配置,及dao配置。
    其中hibernateDao实现常用DAO方法,并定义以后将使用的常量:如预定义查询名、预定义查询参数名、集合名,等等。
   
  4.持久类的路径一般为:src/main/{package}/po/{TableName}.java ,生成的DAO路径为src/main/{package}/dao/{TableName}Dao.java
 
二.创建Spring服务实现:
  1.Spring服务实现无任何接口约束,普通java对象即可。
  2.将需要使用的hibernate Dao 声明为该服务类的属性(spring.property标记)。
  3.为服务类打上spring标记:
    必要标记:spring.bean(parent:对于所有需要spring事务支持的javabean,必须声明parent属性值为"transactionProxy";
             生成工具将根据类名为spring bean自动生成默认 id,)
    常用标记:spring.property(spring 属性)。
          spring.transaction(对于parent=transactionProxy的bean,需要为需要声明是事务支持的方法声明事务属性,具体请参考xdoclet文档)
  4.打开项目下build/build.xml、运行spring任务,该任务将生成spring配置文件。
 
三.创建XWork Action,一般为*/action/*.java
  1.Action需要实现com.opensymphony.xwork.Action,如果我们需要xwork的国际化支持,继承ActionSupport基类,必然需要实现TextProvider接口。
  2.为Action打上xwork标记:
    必要标记:xwork.package(必要属性有name),
            xwork.action(必要属性name,表示某方法为Action方法,将映射到一个具体的url地址),
            xwork.result(必要属性name,该标记定义在定义了xwork.action的地方,可定义多个,表示该Action的结果集)
    常用属性: xwork.spring-ref (属性的set方法上,其值将从spring context中获取)
   
  3.为Action制作结果集页面:
    若未在 xwork.result标记中定义value属性,其值未ActionName+"-"+resultName,若有大写字符,将用"-"隔开,并转小写;
    value值即未页面地址。可以为jsp,velocity,xsl等等。
 
  4.打开项目下build/build.xml、运行xwork任务,该任务将生成xwork配置文件。
 

 

 
   发表时间:2007-07-06  
Thanks, jindw.
你在杭州?
0 请登录后投票
   发表时间:2007-07-08  
withoutmewang 写道
Thanks, jindw.
你在杭州?

现在在江西老家,杭州是我现在向往的城市:)
0 请登录后投票
   发表时间:2007-07-08  
金大为兄?好像前几天在BlogJava看见你有发这个。那时下载过看了一下,好像有些明白。我自己想写个这样的生成器,到时请教你咯。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics