velocity+spring mvc+spring ioc+ibatis框架是我现在公司要求采用的,原因是因为阿里巴巴和淘宝在使用这样的框架,而我公司现在还主要是以向阿里巴巴和淘宝输送外派人员为 主,所以要求采用阿里巴巴和淘宝的框架来做.所以,从此开始了对这种框架的学习过程.
但是使用过一段时间以后,将velocity+spring mvc+spring ioc+ibatis框架组合(简称为VSSI)与struts+spring+hibernate(简称为SSH)对比后,有了自己的一些体会,一吐为快.
可以说,两种组合各有优势,采用何种组合来开发,我认为应该从具体项目来考虑.我个人感觉,偏向于SSH组合,感觉从各方面综合来衡量,SSH更划算.为什么呢,我们先从各自的优势说起,VSSI有几个坏处,或者说是劣势吧,
第一:velocity提供的标签功能较少,相对struts来说,灵活性很差,但是velocity的运行速度比JSP高,但是,做为一般的项目而言,这点损失是无所谓的,也就是说,优势已经不成优势了.
第 二:velocity在eclipse以及JB或者NB里,还没有可视化编辑的插件,也就是说,IDE还没有提供对Velocity的可视化支持,这样的 话,在开发上,就增加了模板开发与维护的难度,必需进行手写代码,当然,你也可以先对HTML进行排版,再改成Velocity模板,但是,这毕竟没有 IDE直接支持好,而struts使用的是JSP,eclipse对其支持已经是很成熟了,很方便.
第三:spring MVC与struts相比,似乎要简单了些,但是,感觉还是有点不太爽,当然也缺少IDE的可视化支持,而struts在eclipse下的可视化看起来 就是好些,虽然不能在上面进行可视化设计,但是也有向导来支持,这也比spring MVC要方便多了.
第四:Ibatis与 hibernate,一个是手动配制,手动编写映射文件和SQL,另一个是全自动化生成,方便性是没法比的.看看ibatis要我们做什么:第一,写映射 文件,第二写SQL文件,第三,写DAO接口,第四,写DAO实现类,第五,写USERBEAN文件等等,很是麻烦,而hibernate,则可以自动生 成,就这些事情,不知道要花掉多少时间.但是,我们也应该看到IBATIS的优点,那就是灵活性高,效率也比hibernate高,其效率和使用JDBC 差不多了.但是,我认为,作为一般的项目,用这么多时间换取这一点效率很不划算,因为这影响的这一点效率根本就不值一提,也就是说,在项目运行时,不会因 为这一点效率而影响到项目进行,得到的这一点性能的提升,完全就是浪费了,但是,在开发时,却增加开发者那么多负担,很不划算.
说了这么 多,似乎VSSI与SSH没有可比性了.这样说对吗?不,不对,不能这么说,要看是什么条件下.上面的比较都是在一般的项目上来比较的,而一般的项目,在 性能上,使用SSH就足够了,VSSI带来的性能提升相对来说,是那么的缈小.但是,如果是那种性能要求极高的项目,这点性能的提升不可小看,像阿里巴巴 和淘宝的项目,就拿淘宝来说吧,这个访问量可不是一般的小啊,对于这样的项目,用开发时间或者说开发高投入换取这点性能提升是很划算的.但是作为一般的项 目,这点回报,我看是不划算的.
我现在正在计划开发一个RSS订阅加BLOG的系统.没错,就是这样一个系统.但是,之间的关系可紧密了.嘿嘿.直到今天,我一直计划用VSSI来 开发,但是,到我发这个文章时,我已经决定改SSH来开发了.希望能够尽快开发完成.同时也希望有想法的朋友加入进来,一起完成完善这个系统.