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来开发了.希望能够尽快开发完成.同时也希望有想法的朋友加入进来,一起完成完善这个系统.

velocity+spring mvc+spring ioc+ibatis初试感觉(与struts+spring+hibernate比较)的更多相关文章

  1. springboot注册到consul中报错:Spring MVC found on classpath, which is incompatible with Spring Cloud

    今天在做springboot整合成springCloud并注册到consul中时,发现若注册到consule中成功 则不能启动swagger,且不能提供任何API服务,要是能提供API服务则不能注册到 ...

  2. spring、spring mvc以及IOC的阅读

    spring vs spring-mvc spring是应用级框架 spring mvc只是一个mvc框架 spring现在包含很多子模块,我们用的最多的是依赖注入. spring模块可分为以下: C ...

  3. spring mvc集成velocity使用

    目前流行的三大页面视图神器是:老牌大哥jsp.后起之秀freemarker和velocity.这里不详细比较这三者的优劣,总体来说,jsp是标配,但后面两个更严格的执行了视图与业务的分离,页面里是不允 ...

  4. Spring MVC工作原理及源码解析(一) MVC原理介绍、与IOC容器整合原理

    MVC原理介绍 Spring MVC原理图 上图是Spring MVC工作原理图(图片来自网上搜索),根据上图,我们可以得知Spring MVC的工作流程如下: 1.用户(客户端,即浏览器)发送请求至 ...

  5. spring mvc+myBatis配置详解

    一.spring mvc Spring框架(框架即:编程注解+xml配置的方式)MVC是Spring框架的一大特征,Spring框架有三大特征(IOC(依赖注入),AOP(面向切面),MVC(建模M- ...

  6. Spring MVC教程——检视阅读

    Spring MVC教程--检视阅读 参考 Spring MVC教程--一点--蓝本 Spring MVC教程--c语言中午网--3.0版本太老了 Spring MVC教程--易百--4.0版本不是通 ...

  7. spring + spring mvc + tomcat 面试题(史上最全)

    文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...

  8. Spring MVC 学习笔记(整理)

    SpringMVC学习 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们 ...

  9. 朱晔和你聊Spring系列S1E4:灵活但不算好用的Spring MVC

    阅读PDF版本 本文会以一些例子来展现Spring MVC的常见功能和一些扩展点,然后我们来讨论一下Spring MVC好用不好用. 使用SpringBoot快速开始 基于之前的parent模块,我们 ...

随机推荐

  1. 【LOJ】 #2540. 「PKUWC2018」随机算法

    题解 感觉极其神奇的状压dp \(dp[i][S]\)表示答案为i,然后不可选的点集为S 我们每次往答案里加一个点,然后方案数是,设原来可以选的点数是y,新加入一个点后导致了除了新加的点之外x个点不能 ...

  2. 【51nod】1149 Pi的递推式

    题解 我们把这个函数的递归形式画成一张图,会发现答案是到每个出度为0的点的路径的方案数 这个可以用组合数算 记录一下P[i]为i减几次PI减到4以内 如果P[i + 1] > P[i],那么转向 ...

  3. Django实战(7):改造ProductList界面

    有了上一节关于Django模板的基础,改造界面就很容易理解了.将界面设计师设计的页面中的内容根据复用程度分别放到基础模板base.html和专用模板productlist.html中. depot/t ...

  4. Django实战(3):Django也可以有scaffold

    rails有一个无用的”神奇“功能,叫做scaffold.能够在model基础上,自动生成CRUD的界面. 说它无用,是因为rails的开发者David说,scaffold”不是应用程序开发的目的.它 ...

  5. 二、 sql*plus常用命令

    一.sys用户和system用户Oracle安装会自动的生成sys用户和system用户(1).sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户 ...

  6. Laravel框架初学一路由(路由参数)

    必要参数 有时需要在路由中捕获到URI的一些参数.比如,需要捕获URI中的用户id,可以这样来定义路由 Route::get("user/{id}", function ($id) ...

  7. DRUID控制

    @Configuration public class DruidConfiguration { @Bean public ServletRegistrationBean statViewServle ...

  8. Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) E. National Property(2-sat)

    E. National Property time limit per test 1 second memory limit per test 512 megabytes input standard ...

  9. HAproxy 代理技术原理探究

    HAproxy 技术分享 简介 HAProxy是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件 Features 1.免费 2.能够做到4层以上代理 3.高性能 ...

  10. cloudstack模板

    玩cloudstack的人都应该玩过模板这个功能,这里还是比较有意思的,我们底层连接vcenter 创建vm采用模板 实际这里的磁盘方案,并不是给系统重新分配的磁盘大小而是又新挂上了一块磁盘,新磁盘的 ...