Struts spring hibernate 越来越“泛滥”了,外面常有不少公司面试总会问起SSH优缺点,网络上也有不少一些文章总结ssh优缺点,但我总感觉总结得不够完全,没完全写到点子上。于是收集了网上的一些意见,加上一些自己见解是以此篇来由。
Struts,spring,hibernate是开源软件,经过了数千万的系统的考验,稳定性,开源便是他们的一大共同优点。具体来讲, STRUTS作为MVC框架的一种实现,有以下优点:
1、实现MVC模式,程序员只需要关注业务逻辑的实现
2、STRUTS的丰富的标签,如可以灵活使用,可以加快一定的开发效率,不过这也成为了STRUTS的一个诟病,STRUTS标签太复杂,不好用
3、业面导航,通过STRUTS的配置文件可以把握整个系统各部份之间的联系,方便后期的系统维护
4、提供EXCEPTION处理机制,支持I18N
缺点嘛,好象还挺多的
1、配置文件过于复杂,过于烦锁,每个具体涉及到操作的ACTION,都要配置FORMBEAN FORWARD等,每次转到一个新的展示页面,就要配置一次forward,如果有10个就要配置10次,而每个ACTION 、 FORBEAN 、 FORWARD、等标签本身配置项也很多,在一些大型项目中,有可能会大大降低开发效率
2、标准的STRUTS的ACTION是非线性安全的,是单例的,它用一个实例去完成所有的请求,如果用得不好,有可能会引用线程安全的问题
3、ACTION测试不方便,由于对SERVLET API依赖过于严重,以致单元测试过于依赖WEB容器,不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。
4、 对Action执行的控制困难. Struts创建一个Action,如果想控制它的执行顺序将会非常困难。甚至你要重新去写Servlet来实现你的这个功能需求。
5、 对Action 执行前和后的处理. Struts处理Action的时候是基于class的hierarchies,很难在action处理前和后进行操作。(重写RequestProcessor processActionPerform()方法可实现此需求)
6、STRUTS校验框架的校验仅能精确到类,而不到精确到方法。如果要对DISPATCHACTION的FORMBEAN进行验证,不能仅能校验其中的个别方法,而是校验了所有了方法。如果要校验,通常只能手工DISPATCHACTION的方法里进行硬编码
7、FORMBEAN像是一种鸡肋,由于是具有FORMBEAN侵入性的,不能传到更低层次去,作为系统实体来用,仅起验证表单,接收表单的作用,一定程度上还造成了struts配置文件的复杂。
虽然STRUTS看起来很多缺点,然以上问题,对于STRUTS讲并非致命性的,稳定性才是硬道理,而且,通过一定的方法以上问题一定程度上能解决。
Hibernate 优点:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库,屏蔽数据库的差异,完成数据持久化的重任,
a.Hibernate 使用 Java 反射机制而不是字节码增强程序来实现透明性。
b.Hibernate 是个轻量级框架。映射的灵活性很出色。
c.它支持各种关系数据库,从一对一到多对多的各种复杂关系。
缺点:
HIBERNATE由于是对JDBC进行了轻量级的封装,内存的消耗要比用纯用JDBC的大,批量操作效率一定程序上也要比JDBC慢。
HIBERNATE灵活性很高,配置项繁复,一定程序上增加了新手的学习周期,用Hibernate如果用得不好,很容易造成性能问题。
Hibernate在动态建表,批量操作方面,能力有限。查询对象,一般是HIBERNATE本身智能地发送SQL语句,虽然有本地SQL查询,不过DBA优化数据库查询在HIBERNATE面前有点显得无能为力
Hibernate的opensessioninview引发性能担忧, Hibernate通过opensessioninview解决实体在页面上延迟加载问题,担是它需要把数据库连接保持在页面上,也扩大了事务的边界。如果在过多网速很慢的用户,有可能会造成数据库连接用尽的危险。
spring 产生在without ejb的年代,它的使命就是要简化企业级开发,确实,它一定程度上完成了它的“使命”,spring通过ioc aop 声名式事务,一些模板类等,使得对象更加用趣了,事务管理更加方便了,编写代码更加简便了。如果要说spring有什么优点的话,以上都可以说是它的优点吧。不过要说spring有什么缺点?我想是不支持分布式访问,分布式事务和集群。
分享到:
相关推荐
struts spring hibernate 优缺点分析.docx
系统的讲解目前最流行的SSH开源柜架开发项目用到的struts、spring 及hibernate各自的优缺点。
Struts,Spring,Hibernate优缺点_fly.mht
解说了,ssh三大框架,struts,spring, hibernate 各个的优缺点
Struts,Spring,Hibernate优缺点 希望大家多提意见
面试时,你也被经常问道ssh是什么这个问题吧?即使今天没有问到,但总会有一天会被问到的,你准备好了吗? 我这里提供总结好的理解一边即可应付面试官的提问.
Spring Struts Hibernate是当前流行的开源J2EE框架,但是SSH的优缺点是什么样的呢?我们有必要来对比一下
介绍Struts,Hibernate和Spring三个开源框架及它们对MVC设计模式的实现,阐述如何更好地将三者结合起来构建一个健壮、高效、易于扩展的J2EE分层架构,并给出该架构的结构图,分析它的优缺点,并且通过网上购物系统给出了...
Struts,Spring,Hibernate优缺点
NULL 博文链接:https://java-xh.iteye.com/blog/411142
《搞定j2ee核心技术与企业应用:ajax,jsp,struts 2,spring,hibernate》是笔者在多年项目开发过程中的经验总结,它通过丰富的实例由浅入深、循序渐进地介绍了目前采用java进行web开发的各种框架的使用方法,从而...
Hibernate工作原理、Hibernate的核心组件、Persistent Object、Hibernate的运行过程、Hibernate缓存的作用、Hibernate缓存分类、Hibernate优点、 Hibernate缺点、spring原理 、AOP(Aspect-Oriented Programming): ...
介绍Hibernate的入门图书,详细讲解了Struts + Spring + Hibernate联合开发的优缺点.
struts+hibernate+spring三大框架的优点和缺点
这是一篇关于SSH框架爱的课程设计论文,里面大致介绍了Spring、Struts及Hibernate三个框架的优缺点
本系统采用Struts+Hibernate+Spring的J2EE 框架,这个开源的WEB开发架构在市场上占主导地位。其采用的MVC模式使页面的显示与处理分离,使前台页面人员更专注于页面的设计,而不用关注业务逻辑。编程人员只需集中精力于...
该书不但讲解了目前最流行的SSH(Spring、Struts、Hibernate)、JSF、JPA的开发,同时还对SOA实现的基石--Web Service的开发进行了探讨。缺点就是偏于实践操作,没有相关的理论详细介绍部分,对于具有一定开发经验的...
该书不但讲解了目前最流行的SSH(Spring、Struts、Hibernate)、JSF、JPA的开发,同时还对SOA实现的基石--Web Service的开发进行了探讨。缺点就是偏于实践操作,没有相关的理论详细介绍部分,对于具有一定开发经验的...
SSH 是 Struts+Spring+Hibernate的集成框架的简称,是目前较流行的一种Web应用程序开源框 架。Struts,Spring,Hibernate这三大框架在Web应用中不是孤立执行而是相互关联,相 互支持的。这就使集成了SSH框架的系统在...