阅读更多

29顶
2踩

编程语言

原创新闻 rapid-generator-v3.9 代码生成器独立版发布

2010-06-30 10:00 by 正式记者 badqiu 评论(23) 有22372人浏览

v3.9发布说明:

rapid-generator是一个生成器引擎,让你可以专注与代码生成器模板的编写, 可以生成如ibatis,ibatis3,hibernate,spring_mvc,struts2等等代码. 

本次版本与以往版本不同之处为现在提供一个命令行工具,可以独立运行. 并且生成器有相当多新特性相当实用.

 

附言: 独立版中自带了h2数据库,可以根据压缩包中的运行说明运行demo, 提供的示例模板都是属于rapid-framework的内置代码模板,你可以在此基础上编写自己的模板. 而rapid-framework新版本也即将发布,敬请期待.

 

命令行运行预览:

命令行运行预览

 

rapid-generator主要特性如下:

 

一. 生成器模板路径可以引用相关变量

如 ${basepackage}/${className}.java,根据该变量生成输出文件

 

二. 自动搜索某个目录所有模板文件,无需配置

 

 

三.代码生成器模板可以引用的相关变量

1. g.generateByTable("table_name_or_view_name") 方法可以引用的变量

table : cn.org.rapid_framework.generator.provider.db.table.model.Table

 

2. g.generateByClass(UserInfo.class) 方法可以引用的变量

clazz : cn.org.rapid_framework.generator.provider.java.model.JavaClass

 

3. g.generateBySql("select * from user_info where pwd=:pwd") 方法可以引用的变量

sql : cn.org.rapid_framework.generator.provider.db.sql.model.Sql

 

4.公共变量

env : 系统环境变量

System.getProperties() :  直接引用,没有前缀

generator.properties 文件中的所有属性,直接引用,没有前缀

gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl

 

 

四.每个模板有gg变量可以控制自身的自定义配置 (每一个模板都会创建新的gg实例)

如是否生成,是否覆盖目标文件,甚至是生成其它文件

${gg.setIgnoreOutput(true)}: 如果为true则不生成输出文件

${gg.generateFile(outputFile,content)} 在模板中生成其它文件

${gg.getProperty(key,defaultValue)}: 得到proproty,如果没有找到,则返回默认值

${gg.getInputProperty(key)}: 会弹出一个输入框,提示用户输入值

具体参考: http://code.google.com/p/rapid-framework/wiki/rapid_generator_gg

 

五.支持生成(gen)及删除操作(del),即生成的代码也可以很方便的删除

 

 

六. 自动删除模板扩展名: .ftl,.vm

      举例:  如你有一个模板 SqlMap.xml.ftl  将变为 SqlMap.xml 

             所以你要生成ftl扩展名的文件,应该将文件名从 list.ftl => list.ftl.ftl 

 

 

七. 模板自动include同级目录:macro.include文件,可以存放公共的macro

示例: 如你的模板为 java_src/com/project/UserDao.java,

将自动include: java_src/com/project/macro.include 及 根目录的macro.include

 

 

八. generator.xml (或者generator.properties)配置文件

1.类似ant可以变量引用,引用环境变量使用${env.JAVA_HOME}, 引用System.getProperties()直接引用

2.自动替换generator.properties中的句号(.)为反斜杠,设置key为key+"_dir"后缀

示例: pkg=com.company => pkg_dir=com/company

 

九.自动拷贝二进制文件至输出目录

如模板目录下的 zip,rar,doc文件将会自动拷贝至输出目录,不会破坏文件格式   (通过扩展名自动识别)

 

 

十. 数据库表配置,用于自定义生成器模板引用的table变量,配置文件必须存放在classpath: generator_config/table/table_name.xml (该文件生成器可以生成,自己再自定义修改)

 

	<!--
	<数据库表名 className="类名称" tableAlias="表的别名">
		<数据库列名 columnAlias="列的别名"
		javaType="自定义javaType"
		unique="是否唯一性约束" nullable="是否可以为空" pk="是否主键,在表没有主键的情况下,可以指定一个代理主键"
		updatable="是否可以更新" insertable="是否插入"	
		enumString="枚举值,以分号分隔,示例值:M(1,男);F(0,女) 或者是:M(男);F(女)"
		enumClassName="如果枚举有值,生成的类名称将是这个,没有枚举值,该配置无用.示例值:Sex"
		/>
	</数据库表名>
	 -->
	<user_info className="UserInfo" tableAlias="用户信息" >
		<username columnAlias="用户名"
			javaType="String"
			unique="false" nullable="true" pk="false"
			updatable="true" insertable="true"
			enumString="F(1,Female);M(0,Male)" enumClassName="用户枚举"
		/>
		<password columnAlias="密码"
			javaType="String"
			unique="false" nullable="true" pk="false"
			updatable="true" insertable="true"
			enumString="" enumClassName="PasswordEnum"
		/>
	</user_info>

 

 

 

 

生成器在线文档:

        http://code.google.com/p/rapid-framework/wiki/rapid_generator

 

 

v3.9下载地址:

        http://code.google.com/p/rapid-generator/downloads/list

 

29
2
评论 共 23 条 请登录后发表评论
23 楼 bruce.peng 2010-07-02 09:54
前来支持一下 
22 楼 Glory_Chonng 2010-07-02 08:57
这种类型的快速生产,是不是专门为菜鸟开发的呢
我感觉架构师好像不大会采用这种机械式创建项目吧
当然,会借鉴这种 各个技术的搭配使用!
21 楼 shinezhou 2010-07-01 20:20
这个干嘛用的?


20 楼 janrn 2010-07-01 17:07
太好了,太喜欢这个东西了
19 楼 javamonkey 2010-07-01 16:23
windir 写道
牛人啊,省了不少事情,有没有界面无所谓


最好有界面,就像jasperReport没有ireport,用的人肯定少多了
18 楼 javamonkey 2010-07-01 16:22
这个跟hibernate tool 生成 java代码和hibernate-mapping文件有什么区别?
17 楼 windir 2010-07-01 09:25
牛人啊,省了不少事情,有没有界面无所谓
16 楼 mikesu 2010-07-01 08:13
非常支持Badqiu
15 楼 bonny 2010-06-30 22:07
我最初也是FREEMARKER生成的,后来看到rapid觉得比我的好,就用它的了。非常感谢,上个版本我看了看  类貌似不用模板生成了,用的是类似ibator那套对象模型。
14 楼 badqiu 2010-06-30 21:39
多谢大家支持!!!!
13 楼 sogo1986 2010-06-30 21:28
呵呵 ,其实很久前就想抽空为rapid的code gen做个类似appfuse的swing界面 没空额,顶badqiu
12 楼 racnow 2010-06-30 19:27
xieyi_541 写道
代码生成器可能造成程序员的失业


扯犊子,代码生成器会提供大量的就业岗位,因为需要大量的人来完善代码生成器,而所谓的代码生成器又几乎不可能完成适应需求,所有又要投入大量的人力物力来修改。
玩玩罢了,就不要宣传了,何必当真呢?
11 楼 cnyangqi 2010-06-30 18:06
badqiu
longlongriver 写道
热烈庆祝badqiu,等有空我帮忙做个UI界面,也省得大家还得手工改配置文件!

弱弱的问一下,badqiu是谁?
10 楼 longlongriver 2010-06-30 15:17
热烈庆祝badqiu,等有空我帮忙做个UI界面,也省得大家还得手工改配置文件!
9 楼 oznyang 2010-06-30 14:18
赞一个,非常不错
8 楼 xieyi_541 2010-06-30 11:42
代码生成器可能造成程序员的失业
7 楼 超级潜水员 2010-06-30 10:19
一支支持badqiu
6 楼 azheng270 2010-06-30 10:11
不知道生成hibernate 注解方式的实体bean能不能用
5 楼 pangyi 2010-06-30 10:10
坐了个沙发啊
4 楼 knifesky 2010-06-30 10:09
这小子太牛了

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 邮件服务器的协议有哪几个?有什么特点?

    邮件服务器是一种Internet服务软件产品,支撑着Internet众多网络服务的是各种服务协议。在选择邮件服务器产品时,要重点考虑其支持服务协议方面的能力,因为它是衡量产品性能的重要指标。与邮件服务器产品有关的网络服务协议主要有以下6个,其中我们重点介绍和我们关系最密切的两个: 1.SMTP 协议   SMTP协议 (Simple Mail Transfer Protocol,简单邮件传输协

  • 【邮件协议】深入理解邮件系统及其协议

    在我们日常开发过程中,经常会涉及到邮件的发送、接收。一方面,邮件服务相比于短信服务会更便宜,其对接方式也更方便,不像短信的发送,需要很多东西进行审核。在对邮件开发前,我们必须对邮件协议有一个整体了解,如使用场景、特性等。SMTP称为简单邮件传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效、可靠的邮件传输。它的一个重要特点是它能够在传送中接力传送邮件,即邮件可以通过不同网络上的主机接力式传送。通常它工作在两种情况下:一是邮件从客户机传输到服务器;

  • 邮件协议详解

    邮件的发送和接收过程——STMP、POP、IMAP、MIME 电子邮件发送协议 是一种基于“ 推 ”的协议,主要包括 SMTP ; 邮件接收协议 则是一种基于“ 拉 ”的协议,主要包括 POP协议 和 IMAP协议 ,在正式介绍这些协议之前,我们先给出邮件收发的体系结构: 从上图可以看出邮件收发的整个过程大致如下: (1)发件人调用用户代理编辑要发送的邮件。 (2)发件人点击屏幕上的”发送邮件“按钮,把发送邮件的 工作全部交给用户代理来完成。用户代理通过SMT...

  • 邮件协议(POP3、IMAP、SMTP)

    POP3、IMAP、SMTP

  • 常用邮箱访问协议

    常用邮箱访问协议

  • 电子邮件相关协议——SMTP,MIME,POP,IMAP

    在互联网发展的早期,电子邮件的发送是基于两个主机之间直接连接的TCP。但是这必须是双方都在线的情况下才能行的通。如果接收方不在线,那么发送方会等待一段时间后尝试重发邮件。这种传输机制的可靠性是非常高的,但是其有效性却非常低下。后来出现了电子邮件服务器,发送方和接收方就不必同时在线。发送方发出的电子邮件在邮件服务器中,邮件服务器会根据邮件DNS的MX来查询接收方的邮件服务器IP地址,然后将邮件转发到...

  • JavaMail学习笔记(一)、理解邮件传输协议(SMTP、POP3、IMAP、MIME)

    电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就必须遵循一定的规则,这些规则就是邮件传输协议。SMTP协议定了邮件客户端与SMTP服务之间,以及两台SMTP服务器之间发送邮件的通信规则;POP3/IMAP协议定义了邮件客户端与POP3服务器之间收发邮件的通信规则。 一、SMTP协议 SMTP(Simple ...

  • 有关邮件系统的三种协议smtp,pop3,imap

    在使用E-mail时,常常会提到smtp,p

  • 邮件服务器的相关协议

    MUA :mail user agent(邮件用户代理人) 功能:收取邮件主机的电子邮件,用SMTP和imap或pop3与服务器通信。 MAT:mail transfer agent(邮件发送代理人) 功能:把客户端的邮件转发出去或接受,使用SMTA,其包含的软件有sendmail、postifix MDA:Mail Deliv...

  • 电子邮件收发的原理和相关协议

    2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

  • 常用邮件协议

    邮件协议SMTP http://blog.csdn.net/kerry0071/article/details/28604267 POP3 http://blog.csdn.net/new_teacher/article/details/51392444

  • 常用的三种邮件协议

    小Q:一蓑烟雨,一纸素笺,倚西风,但看是非,空回首归去来兮,终不似一如既往。===========================================================我们常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。 SMTP(Sim...

  • 电子邮件(E-mail)和电子邮件协议

    一、电子邮件是什么 1.1、电子邮件简介 电子邮件(electronic mail,简称E-mail)又称电子信箱、电子邮箱,它是—种用网络手段提供信息交换的通信方式,利用电信号传递和存储电子文件、图片、音视频等各类型信息,可以使人们在任何地点、任何时间进行收发信件,解决了时空的限制,极大的提高了工作效率。用户除了使用电子邮件交流之外;也可通过电子邮件订阅新闻、注册软件等用途,并且电子邮箱还能够存储管理邮件内容,方便查阅记录。 在网络中,电子邮箱可以自动接收网络中的任何电子邮箱所发送的...

  • 常见的邮箱协议简介

    常见的邮箱协议简介 1. IMAP协议: 2. POP3协议: 3. SMTP协议: 转载于:https://blog.51cto.com/sglab/836666

  • 常用邮件协议及其命令行使用

    SMTP协议(Simple Mail Tranfer Protocol) 定义邮件客户端(UA, User Agent)与SMTP服务器之间,以及两台SMTP服务器之间的通信规则。 POP3协议(Post Office Protocol) 邮局协议,定义了客户端软件与POP3服务器的通信规则。 IMAP协议(Internet Message Access Protocol) In

  • 邮件中的协议

    《Computer Networking:A Top-Down Approach,Sixth Edition》中的一幅插图: 现在来区分一下这几种协议。 HTTP与SMTP的区别: 1.主被动方式 。HTTP是被动的,所以是pull protocol,SMTP是主动的,所以是push protocol。 2.编码,SMTP全是ASCII,所以遇到不是ASCII的时候就会多一道转换,而HTTP则支...

  • 网络协议 之 邮件协议

    电子邮箱虽不像QQ、微信等聊天工具那么流行,但仍在现在通信工具中占据了一定地位。在使用邮箱进行通信是,我们最常接触到的一项高深的网络技术就是:协议。不同的邮箱在对协议的支持方面都各有不同。就电子邮箱这一工具中常用的协议就有如下: SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转

  • JavaMail教程(一)-邮件协议介绍

    内容通过网络收集整理 目前常用的电子邮件协议有SMTP、POP、IMAP,他们都隶属于TCP/IP协议簇。 1.SMTP(Simple Mail Transfer Protocol)         即简单邮件传输协议,它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循SMTP协议的发

Global site tag (gtag.js) - Google Analytics