[rapid-framework]代碼生成器發(fā)布:rapid-generator-v1.0
通常代碼生成器存在的問(wèn)題.
- 二次開(kāi)發(fā)困難
- 過(guò)于智能,自動(dòng)插入我們的項(xiàng)目中,程序員還需考慮舊的代碼會(huì)不會(huì)被覆蓋的問(wèn)題
- 沒(méi)有將存放模板的目錄名稱及文件名稱利用起來(lái),導(dǎo)致還需配置每個(gè)模板文件生成的文件名,目錄結(jié)構(gòu)
具體請(qǐng)查看我寫的文章:為何代碼生成器都要這么智能呢?
本代碼生成器的特性
- 1. 基于FreeMarker
模板語(yǔ)言
- 2. 基于數(shù)據(jù)庫(kù),并支持多種數(shù)據(jù)庫(kù)(mysql,sql server,oracle測(cè)試通過(guò))
- 3. 半手工方式,生成的代碼放在某個(gè)目錄,再手工拷貝回來(lái)工作區(qū)
- 4. 易于做二次開(kāi)發(fā),整個(gè)生成器本身就是java源代碼,源代碼核心十分精簡(jiǎn),并且鼓勵(lì)你做修改代碼,也可以作為任何語(yǔ)言的代碼生成器
- 5. 配置簡(jiǎn)單,只有一個(gè)配置文件generator.properties
- 6. 以application方式運(yùn)行生成器,生成不同的table直接修改相關(guān)java代碼即可
- 7. 將文件系統(tǒng)的目錄名稱及文件名稱作為生成器的一部分,模板文件的的名稱與目錄名稱可以直接引用相關(guān)變量,如 ${basepackage}/${className}.java? (${className}=Blog,則會(huì)生成Blog.java)
- 8. 以@testExpression結(jié)尾的模板文件為有條件忽略,如果testExpression的值在數(shù)據(jù)模型為true則生成該文件,生成的文件不會(huì)包含@testExpression,反之則不生成該文件(應(yīng)用場(chǎng)景:用于在是否要生成hibernate聯(lián)合主建的文件中)
- 9. 支持文件插入操作,如模板輸出生成的地方已經(jīng)有該同名的文件存在,并且文件中有包含"webapp-generator-insert-location"標(biāo)記,則模板生成的內(nèi)容會(huì)插入在該標(biāo)記之后.該特性對(duì)如生成的spring配置內(nèi)容插入spring配置文件十分有用
代碼生成器的運(yùn)行
- 修改generator.properties的數(shù)據(jù)庫(kù)連接屬性及其它屬性
- 將generator_lib中的jar加入classpath,generator_lib自帶了幾種驅(qū)動(dòng)
- 以application的方式運(yùn)行GeneratorMain類,要生成不同的table,直接修改代碼即可
1?public?class?GeneratorMain?{???
2?????public?static?void?main(String[]?args)?throws?Exception?{???
3?????????Generator?g?=?new?Generator();???
4????????????
5?????????g.clean();???
6?????????g.generateTable("blog");???
7?//??????g.generateAllTable();???
8?????}???
9?}??
代碼template目錄結(jié)構(gòu)
?
?
項(xiàng)目下載: http://code.google.com/p/rapid-generator/downloads/list
本生成器也將作為rapid-framework的一部分,即將發(fā)布,敬請(qǐng)關(guān)注.
?
posted on 2008-07-22 09:09 badqiu 閱讀(2475) 評(píng)論(7) 編輯 收藏