`

Arch-05-07- 生成器

阅读更多

一、简单直接就是生产力,就选 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

分享到:
评论

相关推荐

    arch-at91rm9200.zip_ARCH c++_arch_at91rm9200

    标题中的"arch-at91rm9200.zip_ARCH c++_arch_at91rm9200"表明这是一个与Atmel公司的AT91RM9200微处理器相关的C++编程资源包,主要涉及处理器架构层面的开发。AT91RM9200是一款基于ARM920T内核的嵌入式微控制器,常...

    Arch-03-15- Nginx+tomcat 配置负载均衡动静分离

    标题“Arch-03-15- Nginx+tomcat 配置负载均衡动静分离”涉及的是在Web服务器架构中使用Nginx与Tomcat的集成,通过配置实现负载均衡和动静态资源分离。这样的架构可以提高系统的可用性和响应速度,减轻后端应用...

    Arch-GPT-

    GPT(Generative Pre-trained Transformer)是深度学习领域的一个模型,常用于自然语言处理任务,如文本生成和对话系统。然而,具体到"Arch-GPT-",其确切含义需要更多的上下文信息来解读。 在描述中同样没有提供...

    Arch Linux - tty1模式

    在Arch Linux中,`pacman`是默认的包管理器,用于安装、更新或卸载软件包。可以通过编辑`/etc/pacman.conf`来添加额外的仓库,如`archlinuxcn`。在该文件中,通过设置`SigLevel=OptionalTrustedOnly`来允许从非官方...

    Arch-Install:一个简单的arch安装脚本beta

    1. **准备**: 在开始安装前,确保你拥有最新的Arch Linux ISO镜像,并将其烧录到USB驱动器或DVD上。连接到互联网,无论是通过有线还是无线。 2. **引导**: 使用制作好的启动媒体启动电脑,进入Arch Linux live环境...

    direwolf-arch-rice::wolf_face::cooked_rice:复制我的水稻Arch Linux设置的指南

    6. **pywal**: 这是一个动态壁纸和颜色方案生成器,可以根据桌面壁纸自动调整终端颜色,确保视觉一致性。 7. **LinuxShell**: 最后,整个环境的个性化和自动化离不开强大的shell。bash或其他shell的配置,如zsh,...

    afe-arch-gallery:创建和显示相册的应用程序-分布式软件体系结构@ PUC Minas

    1. 源代码文件:JavaScript文件夹中包含项目的主要代码,分为不同的模块,如路由、模型、视图和控制器。 2. HTML和CSS:这些文件负责构建用户界面和定义样式,可能包括模板和布局。 3. 图片资源:项目可能包含一个...

    blackarch-site:BlackArch Linux网站

    -开发人员的gpg键generate -site.sh-调用generators /中的每个生成器update - tools.sh-更新“数据/工具” sync.sh-将本地站点同步到远程站点不重要/显而易见的事情CSS / -样式表图片/ -图片extra / -包含一些脚本以...

    babys-first-arch-install-script:大声笑只是练习,不要认真对待这个

    这个脚本可能是用Shell语言编写的,因为标签中提到了"Shell",Shell是Linux系统中常用的命令行解释器,用于执行一系列自动化任务。 在Linux世界中,Arch Linux以其高度的自由度和灵活性闻名,但同时也因其安装过程...

    .arch海贼王通缉令生成器.exe

    .arch海贼王通缉令生成器.exe

    arch-install-script:自动化安装拱门

    1. **下载镜像**:首先,你需要下载最新的Arch Linux ISO镜像,并将其刻录到USB驱动器或DVD上。这一步可以使用`dd`命令完成。 2. **启动安装环境**:使用刻录好的镜像启动计算机,进入Arch Linux的Live系统。 3. *...

    arch-linux-setup:设置Arch Linux以供使用

    1. 一个空白的USB驱动器或DVD,用于创建可启动的Arch Linux安装媒体。 2. 一个支持UEFI或BIOS的计算机。 3. 网络连接,因为Arch Linux采用网络安装方式。 ### **二、创建安装媒体** 1. 下载最新版的Arch Linux ISO...

    《android-binder-arch》pdf

    除了基本原理,书中还会涉及AIDL(Android Interface Definition Language),这是一种用于定义Binder接口的语言,可以自动生成客户端和服务端的代码,简化了开发过程。通过AIDL,开发者可以方便地定义跨进程调用的...

    Beginners' Guide - ArchWiki.pdf

    本文档是一份针对初学者的《Arch Linux安装指南》,旨在指导用户使用Arch Linux官方提供的安装脚本来安装Arch Linux。为了方便阅读,指南还提供了一个分页版本。在安装之前,建议用户预先浏览FAQ,以便对安装过程有...

    generator-arch:Arch应用程序生成器

    要从npm安装generator-arch,请运行: npm install -g generator-arch 最后,启动生成器: yo arch认识约曼约曼有一颗金子般的心。 他是一个有感情和见解的人,但他很容易与他人合作。 如果您认为他太自以为是,就

    WPGenerator:Arch Linux 的简单壁纸生成器

    WPGenerator 是 Arch Linux 的简单壁纸生成器。 您可以使用它来创建具有几乎相同、清晰外观的不同尺寸的墙纸。 依赖关系 开罗 图书馆 设置 git clone git://github.com/thillux/WPGenerator.git cd WPGenerator ...

    Comcast:NGOD2.0总体架构中文版定义.pdf

    计费系统负责跟踪用户消费,生成账单,并与财务系统集成以处理支付。 1.2.5 授权服务器(ES) ES处理用户的访问权限,根据用户订阅和购买记录决定他们可以访问哪些内容。 1.2.6 导航服务器 导航服务器提供电子节目...

    .arch支付宝即时到账在线语音音效生成器html源码.zip

    该压缩包文件名为".arch支付宝即时到账在线语音音效生成器html源码.zip",从标题我们可以推断出,这是一份与支付宝即时到账服务相关的HTML源代码,用于生成在线语音音效。这个工具可能是一个网页应用,允许用户...

    ARCH-REPORT

    在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。 npm run build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且...

    ffmpeg x264 fdk-aac编译android so

    在实际应用中,可能还需要根据具体需求调整编译选项,例如支持更高版本的Android API,或者启用额外的编解码器。在处理过程中,注意遵循开源许可证的要求,尤其是fdk-aac的GPL v2许可证,确保合法合规地使用这些开源...

Global site tag (gtag.js) - Google Analytics