以前听很多人说Appfuse好,但一直没时间看看,也因为是外国人的东西,文档主要还是英文的。后来看了SpringSide(国人写的同类框架,其实我更愿意称他们为Auto Build Tools),国人写的,文档好读。确实发现这类Tools确实是好,好在哪里?主要不是说他们有多方便,让你开发省多少事,而是他们有一个共同特点:使用业界最新、最好、最流行的技术和相关框架程序,并且他们都是最佳实践(Best Practises),更重要的是配备了相当简单易懂但重点突出的文档。是学习和使用最新、最好、最流行技术的最好帮手,让你很快上手,免去了一个很漫长的去粗取精的过程。
就象SpringSide的Wiki文档,我觉得是不可不读的好东西,虽然不深入,但基本上涵盖了现在最好用的技术并给予了重点突出的讲述。但SpringSide跟Appfuse比起来在规模上还是有相当大的差距,就从框架而言Appfuse基本上涵盖了所有的主流框架的组合。并且Appfuse对框架封装的更少,生成的代码更容易学习。我觉得这是SpringSide从某个角度来讲不太好的地方。Appfuse的Wiki中文页也在不断的完善中,所以如果你想学习那些最好最流行的东西吐血推荐玩一玩Appfuse(用Appfuse真的象玩一样,跑一跑脚本程序就好了,呵呵)。
利用春节在家的时间也刚好因为一个项目的原因比较全面的学习了一下Appfuse,确实满好用的。我用的是WebWork2+Spring2+iBATIS2的组合,对于简单需求基本上能完成80%+的代码,不过也发现了两处比较严重的BUG,贴出来大家注意一下,也免得自己忘记了。
我使用的是appfuse-webwork-1.9.4的版本,使用WebWork2+Spring2+iBATIS2组合。 1. 生成的WebWork2部分的一个定义验证器的文件有错。 即WEB-INF/classes/validators.xml文件,Appfuse把它象用户自定义的验证文件一样加了一个dtd标签:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd"> 而在这个文件里是不能加的,我测试的在WINDOWS XP下没有问题,但是到WINDOWS 2000下就会报错。
2. iBATIS的SQL MAP文件的updata语句的输入parameterMap有错。 Appfuse会把id属性生成为第一个,而updata statment中是按照顺序来取参数的,一般情况下id属性都是作为最后一个参数被传入,所以会报错。如下代码:
1 <parameterMap id="updateParam" class="tbaccidentType">
2 <parameter property="typeid" jdbcType="INTEGER" javaType="java.lang.Integer"/>
3 <parameter property="name" jdbcType="VARCHAR" javaType="java.lang.String"/>
4 </parameterMap> 这张表中主键为typeid,有一个属性为name,而updata statment代码如下:
1 <update id="updateTbaccidentType" parameterMap="updateParam">
2 <![CDATA[
3 update tbaccident_type set
4 name = ?
5 where typeid = ?
6 ]]>
7 </update> 很显然,id应该是在最后传进去。
我对Appfuse研究时间也不长,就发现这两个bug,可能STRUTS+SPRING+HIBERNATE用的人最多吧,WEBWORK和iBATIS用的人比较少,存在BUG的可能性比较大,不过作为学习其实还是希望碰到些BUG,没有BUG也不能叫程序了,希望Appfuse能发展的更好,真是感慨和佩服作者对各种框架的了解程度。
吐血推荐:Appfuse!
posted on 2007-02-28 20:52
cresposhi 阅读(1979)
评论(4) 编辑 收藏