大約兩年前私下編寫一個wiki時使用的代碼生成工具,最近想繼續(xù)這個wiki項目(http://sourceforge.net/projects/txdoc),也順便吧這個代碼生成工具整理出來。
PPT見:http://m.tkk7.com/jindw/archive/2007/06/30/127195.html
eclipse項目,文件太大,SF文件發(fā)布系統(tǒng)最近問題多多,只好分成三分上傳在javaeye blog:http://jindw.javaeye.com/blog/98436
其中,代碼生成工具及一些基礎(chǔ)類庫在web/WEB-INF/lib/xdoclet-xidea-plus.jar文件中(附源碼)
目錄結(jié)構(gòu)
src/main: 源文件
src/gen: 生成的源文件及配置文件
src/test: 測試類
build: ant 腳本(build.xml)、ant配置、構(gòu)建過程的臨時目錄(temp)
web: web根目錄
lib: 編譯器附加類庫(如ant任務(wù)需要的lib)
doc: 文檔目錄
doc/xdoclet: xdoclet參考文檔
一.創(chuàng)建持久類:
1.改類為一個有諾干屬性的簡單java類
2.為持久類打上hibernate標(biāo)記:
必要標(biāo)記:hibernate.class(指定該類為持久類,無必選屬性,可選屬性參考xdoclet文檔)
hibernate.id (指定持久類主鍵,必選屬性generator-class,指定主鍵生成算法,常用算法有uuid.hex、hilo、assigned....)
常用標(biāo)記:hibernate.property(指定持久屬性,無必選屬性)
hibernate.cache(預(yù)定義查詢,必選屬性 name,query)
hibernate.one-to-many,hibernate.many-to-one等,指定對象關(guān)系,比較復(fù)雜,建議先看hibernate官方文檔、xdoclet文檔
3.打開項目下build/build.xml、運行hibernate任務(wù),該任務(wù)將生成hibernate映射文件、hibernate dao實現(xiàn)、hibernate的spring配置,及dao配置。
其中hibernateDao實現(xiàn)常用DAO方法,并定義以后將使用的常量:如預(yù)定義查詢名、預(yù)定義查詢參數(shù)名、集合名,等等。
4.持久類的路徑一般為:src/main/{package}/po/{TableName}.java ,生成的DAO路徑為src/main/{package}/dao/{TableName}Dao.java
二.創(chuàng)建Spring服務(wù)實現(xiàn):
1.Spring服務(wù)實現(xiàn)無任何接口約束,普通java對象即可。
2.將需要使用的hibernate Dao 聲明為該服務(wù)類的屬性(spring.property標(biāo)記)。
3.為服務(wù)類打上spring標(biāo)記:
必要標(biāo)記:spring.bean(parent:對于所有需要spring事務(wù)支持的javabean,必須聲明parent屬性值為"transactionProxy";
生成工具將根據(jù)類名為spring bean自動生成默認(rèn) id,)
常用標(biāo)記:spring.property(spring 屬性)。
spring.transaction(對于parent=transactionProxy的bean,需要為需要聲明是事務(wù)支持的方法聲明事務(wù)屬性,具體請參考xdoclet文檔)
4.打開項目下build/build.xml、運行spring任務(wù),該任務(wù)將生成spring配置文件。
三.創(chuàng)建XWork Action,一般為*/action/*.java
1.Action需要實現(xiàn)com.opensymphony.xwork.Action,如果我們需要xwork的國際化支持,繼承ActionSupport基類,必然需要實現(xiàn)TextProvider接口。
2.為Action打上xwork標(biāo)記:
必要標(biāo)記:xwork.package(必要屬性有name),
xwork.action(必要屬性name,表示某方法為Action方法,將映射到一個具體的url地址),
xwork.result(必要屬性name,該標(biāo)記定義在定義了xwork.action的地方,可定義多個,表示該Action的結(jié)果集)
常用屬性: xwork.spring-ref (屬性的set方法上,其值將從spring context中獲取)
3.為Action制作結(jié)果集頁面:
若未在 xwork.result標(biāo)記中定義value屬性,其值未ActionName+"-"+resultName,若有大寫字符,將用"-"隔開,并轉(zhuǎn)小寫;
value值即未頁面地址。可以為jsp,velocity,xsl等等。
4.打開項目下build/build.xml、運行xwork任務(wù),該任務(wù)將生成xwork配置文件。
posted on 2007-07-06 14:37
金大為 閱讀(1050)
評論(1) 編輯 收藏 所屬分類:
Java