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. WordPress引入css/js两种方法

    WordPress引入css/js 是我们制作主题时首先面对的一个难点,任何一款主题都要加载自己的css,js,甚至很有可能还需要加载Jquery文件,网上方法特多,说法不一,我们今天借鉴wordpr ...

  2. 《精通Python设计模式》学习之工厂方法

    小书,在我以前作数据库的连接时,就用了这个工厂方法的. 归纳总结一下,更有利于成长吧. import xml.etree.ElementTree as etree import json class ...

  3. nginx学习 一.window下安装

    1. nginx下载路径 http://nginx.org/en/download.html 2.下载后解压到一个没有中文名的文件夹中 3.修改server下location的root为具体的路径,修 ...

  4. CCF CSP 201412-2 Z字形扫描

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201412-2 Z字形扫描 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫 ...

  5. day5模块学习 -- os模块学习

    python基础之模块之os模块 os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/ ...

  6. 基于 SSH 框架的 Criteria 和 DetachedCriteria 多条件查询

    Hibernate 定义了 CriteriaSpecification 接口规范用来完成面向对象的条件查询,Criteria 和 DetachedCriteria 就是 CriteriaSpecifi ...

  7. mysql 触发器(Trigger)简明总结和使用实例

    一,什么触发器 1,个人理解触发器,从字面来理解,一触即发的一个器,简称触发器(哈哈,个人理解),举个例子吧,好比天黑了,你开灯了,你看到东西了.你放炮仗,点燃了,一会就炸了.2,官方定义触发器(tr ...

  8. web到service简单原理例子

    这是目前的理解 附上服务端源码 package com.lsw.server; import java.io.*; import java.net.*; import java.util.HashMa ...

  9. NetCore+Dapper WebApi架构搭建(四):仓储的依赖注入

    上一节我们讲到实体,仓储接口和仓储接口的实现需要遵循约定的命名规范,不仅是规范,而且为了依赖注入,现在我们实现仓储的依赖注入 在NetCore WebApi项目中新添加一个文件夹(Unit),当然你也 ...

  10. Lua脚本

    应用场景: 游戏开发 独立应用脚本 Web 应用脚本 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench 安全系统,如入侵检测系统 1. 在很多时候,我们可以将Lua直接嵌 ...