一、简单直接就是生产力,就选 rapid http://code.google.com/p/rapid-framework/
1. 最佳实践
(1) 尽量删除没用的东西
生成器帮你生成的东西有时你是并不需要的,如一张表只有查看,而没有增删改功能,那么你应该将edit.jsp,create.jsp等无用的东西删除,UserAction.save(),UserAction.edit()等方法也都删除,只保留需要的东西,以保持代码的整洁.避免后来者在这些无用东西上产生不必要的误解而增加维护成本.
(2)一个项目一套生成器模板
* 因为各个项目的UI都有可能是不一样的,而UI模板也可能需要根据不同项目要进行不同的定制,所以你的项目需要自带一套模板.而Dao,Service等模板则可以通用.
* 你可能会有一个自己的脚手架及公共的模板,并且会持续修改.但是由于现在使用生成器的项目已经在开发,当前项目使用的模板很有可能赶不上你自己的公共脚手架中的模板修改.所以项目通常自带一套模板并持续维护.
(3)拒绝重复生成代码的诱惑
本人实践,代码只生成一次,后面全部是手写代码. 初始生成的代码已经可以为你减轻很大的工作量.
* DAO层以上代码重复生成一点意义也没有,只是帮你生成一个骨架(生成的代码与框架结合,已经是十分精简),然后自己再填空编写业务逻辑
* 后台的话可以直接生成UI页面,生成一次以后自己就手工编辑,页面千变成化,只能适应一般需求,没有万能的模板适应所有需求.
* 如果你陷入要重复生成,势必为造成模板复杂,后期会难以维护.
(4)构建你自己的脚手架?因为rapid是一个更加通用的脚手架(dao层,web层都可切换不同组件),因而也限制其现在的发展,而你可以构建属于自己的项目脚手架(如spring_rest+spring_jdbc+freemarker),这样就不用考虑过多的项目组合,并可以集中精力只搞好一个项目组合。
2. rapid-framework概述
rapid- framework是一个以spring为核心的项目脚手架,以插件的方式将不同的开源项目集合在一起,并可以实现不同的项目组合.如 (struts2+spring+hibernate),(struts2+spring+iBatis), (springmvc+spring+iBatis)的项目组合.
项目结构
项目的结构是经典的三层结构: Action => Service => Dao
框架概览
* Dao: spring_jdbc, hibernate, ibatis2, ibatis3, 可以切换dao组件
* Dao Helper: 基于dialect的分页(ibatis2, ibatis3, jdbc),动态sql构造工具rapid-xsqlbuilder
* Web MVC: struts1, struts2, springmvc, springmvc_rest, 可以切换web组件
* Template: (velocity, freemarker, jsp)的模板可以相互继承, velocity及freemarker可以实现模板之间的管道操作
* 分页组件: extremeTable, rapid-simpletable
* UI: rapid-validation表单验证, My97DatePicker日期控件
* 单元测试: spring test+DBunit
* 底层支撑: 插件体系及代码生成器(rapid-generator)
3. 目录结构
java_src #java源代码目录
--i18n #存放国际化的messages
--spring #存放spring的配置文件
java_test
generator #代码生成器目录
--src #生成器的源代码
--lib #生成器依赖的jar
template #生成器的模板,代码生成器将扫描该目录及子目录的所有文件,后读取该目录的模板然后生成代码
plugins #插件目录,插件安装完该目录可以删除
--build.xml #用于安装插件的ant脚本,包含install_plugin命令以供安装插件
web #web源代码目录
build.xml #ant构建脚本,用于为项目打包
build.properties #ant build.xml的配置文件
3. 插件安装使用说明
(1)plugins 所有插件存放目录
struts2 struts2插件
hibernate hibernate插件
...
--build.xml 插件安装ant脚本,用于安装插件
现所有的插件存放在plugins目录,plugins目录包含一个ant脚本build.xml,通过运行该ant脚本来安装插件.
(2)通过ant插件安装
通过eclipse打开文件,再打开outline视图,右键点击target即可运行ant任务
● ant任务介绍
* install_plugin : 弹出对话框根据"插件名称"安装插件.可以安装任何插件
* install_xxxxxx : 内置的几个名称用于快速插件安装,避免需要手工输入插件名称.
如需要安装struts2与hibernate插件,直接运行install_struts2+hibernate target即可
● 插件安装完的处理
* 插件安装完,如果其它插件你也不需要,可以将所有插件删除,直接删除plugins目录即可
(3)手工安装插件
如果ant运行有问题,你可以手工安装插件. 因为ant脚本实现也只实现两个功能
* 拷贝插件目录下的内容至项目根目录
* 将插件目录下的web_merge.xml合并至项目的web.xml的尾部
所以你手工执行上面步骤即可
===================================================================
定制最佳实践
1. generator.xml 可以新增参数,freemarker 中可以直接使用,但不要有“.”符号。
2. 需要修改代码增加功能,如按单个表名生成;
3. template 比较有趣,可以让生成的代码质量很高
===================================================================
延伸构想
1. service 封装成 cxf 的 webservice
2. 自动测试 webservice
3. http 方式测试 webservice