Struts优缺点
优点:
1.开源软件,能更深入的了解其内部实现机制。
2.Taglib标记库,灵活动用,能大大提高开发效率。
3.页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统
各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者
接手这个项目时,这种优势体现得更加明显。
4.提供Exception处理机制.
5.数据库链接池管理
6.Struts的Action必需是thread-safe方式,它仅仅允许一个实例去处理所
有的请求。所以action用到的所有的资源都必需统一同步,这个就引起了线程安
全的问题。
缺点:
Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,
甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。
Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系
统的复杂度。
ActionForms使用不便、无法进行单元测试(StrutsTestCase只能用于集成)
Spring的原理和优点
Spring真正的精华是它的Ioc模式实现的BeanFactory和AOP,它自己在这
个基础上延伸的功能有些画蛇添足。
Ioc模式是什么
可伸缩性和重/轻量,谁是实用系统的架构主选?
Spring
它是一个开源的项目,而且目前非常活跃;它基于IoC(InversionofControl,反
向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层中
必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某
一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,
采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现
TranscationManagment,等等
优点
a.Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅
仅使用了Struts或其他为J2EE的API特制的framework,Spring致力于解决剩
下的问题。
b.Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,
这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。
c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消
除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个魔法般
的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了
Spring,你仅仅需要看看类的JavaBean属性。InversionofControl的使用(在下
面讨论)帮助完成了这种简化。
d.?通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进
养成好的编程习惯。
e.Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring
应用中的大多数业务对象没有依赖于Spring。
f. 使用Spring构建的应用程序易于单元测试。
g.Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能
选择用POJOs或localEJBs来实现业务接口,却不会影响调用代码。
h.Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,
它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不
通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实
现。
i. Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R
mapping产品(如Hibernate)。
Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大
价值的。
缺点:
使用人数不多、jsp中要写很多代码、控制器过于灵活,缺少一个公用控 制器
Hibernate
优点:
Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架。
Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访
问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。
Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC
驱动,和数据库都有一定的关系,但是和使用它的Java程序,和AppServer没
有任何关系,也不存在兼容性问题。
Hibernate不能用来直接和EntityBean做对比,只有放在整个J2EE项目的框
架中才能比较。并且即使是放在软件整体框架中来看,Hibernate也是做为JDBC
的替代者出现的,而不是EntityBean的替代者出现的,
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常
轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵
数据库。
Hibernate可以应用在任何使用JDBC的场合。
Hibernate使用Java 反射机制而不是字节码增强程序来实现透明性。
Hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
缺点:
它限制您所使用的对象模型。(例如,一个持久性类不能映射到多个表)。
让我再列一次我已经列n次的框架结构:
传统的架构:
1)SessionBean<->EntityBean<->DB
为了解决性能障碍的替代架构:
2)SessionBean<->DAO<->JDBC<->DB
使用Hibernate来提高上面架构的开发效率的架构:
3)SessionBean<->DAO<->Hibernate<->DB
就上面3个架构来分析:
1、内存消耗:采用JDBC的架构2无疑是最省内存的,Hibernate的架构次之,EB
的架构1最差。
2、运行效率:如果JDBC的代码写的非常优化,那么JDBC架构运行效率最高,
但是实际项目中,这一点几乎做不到,这需要程序员非常精通JDBC,运用Batch
语句,调整PreapredStatement的BatchSize和FetchSize等参数,以及在必要的
情况下采用结果集cache等等。而一般情况下程序员是做不到这一点的。因此
Hibernate架构表现出最快的运行效率。EB的架构效率会差的很远。
3、开发效率:在有JBuilder的支持下以及简单的项目,EB架构开发效率最高,
JDBC次之,Hibernate最差。但是在大的项目,特别是持久层关系映射很复杂的
情况下,Hibernate效率高的惊人,JDBC次之,而EB架构很可能会失败。
相关推荐
### SSH框架优缺点详解 SSH框架,即Struts + Spring + Hibernate这三种技术的组合,是Java Web开发中非常流行的一种轻量级架构模式。本文将深入探讨SSH框架中的Struts、Spring、Hibernate各自的优缺点。 #### ...
### SSH框架:Struts、Hibernate、Spring 的优缺点分析 #### Struts **优点:** 1. **MVC模式的支持**:Struts框架遵循MVC(Model-View-Controller)设计模式,它将应用程序分为模型层、视图层和控制器层,这样的...
下面我们将深入探讨SSH框架的优缺点。 **一、Struts2** Struts2是基于MVC设计模式的Web应用框架,它继承了Struts1的优点并解决了其不足。其主要优点包括: 1. **灵活的拦截器机制**:Struts2使用拦截器来处理请求,...
### SSH框架介绍及其优缺点 #### 一、SSH框架概述 SSH框架是Java Web开发领域中非常流行的一个组合,它由三个独立但又相互协作的部分组成:Struts、Spring 和 Hibernate。这三个技术分别解决了Web应用开发中的不同...
改文档是一个非常实用的 三大框架解说文档 通过该文档 初学者能更深一步对SSH框架的了解
JavaSSH框架,通常指的是在Java开发中用于构建服务器端应用的一种技术栈,它结合了Struts、Spring和Hibernate这三个主流的开源框架。Struts提供了MVC(Model-View-Controller)设计模式,Spring则是一个全面的后端...
NULL 博文链接:https://guona329.iteye.com/blog/1597773
在实践中,你可以通过创建一个简单的示例项目来加深对这些框架的理解,比如构建一个用户管理系统,包括用户注册、登录、查询等功能,这将帮助你更好地掌握SSM和SSH框架的使用方法和优缺点。同时,关注社区和官方文档...
9. **挑战与优化**:SSH框架的缺点在于配置繁琐,维护成本较高。在实际开发中,可以考虑使用Spring Boot简化配置,使用Spring Data JPA或MyBatis简化数据访问,以提高开发效率和代码质量。 10. **社区支持**:SSH...
下面我们将深入探讨SSH框架的各个方面,包括其优缺点。 **Struts2** 是一个基于MVC设计模式的Web应用框架,它通过简化MVC的实现来帮助开发者创建更结构化的应用程序。Struts2提供了丰富的拦截器和插件机制,使得...
SSH框架,全称为Struts2、Spring和Hibernate,是Java Web开发中常用的一种经典组合,用于构建企业级应用。这个压缩包提供了SSH框架整合的源码示例,涵盖了声明式和注解两种配置方式,适合初学者入门学习。 首先,让...
通过阅读"SSH框架简介.doc"和"Spring框架简介.doc",你可以深入理解这两个框架的工作原理、优缺点及应用场景,为你的Java开发之路打下坚实基础。在学习过程中,实践是关键,尝试创建小型项目,将理论知识转化为实际...
个人中的SSH详细介绍,包括struts1的工作原理、Struts1优缺点(为什么要用strust1)、struts1的工作原理及基本配置详解、struts2工作原理、struts2运行机制、Struts2的工作流程、Struts2工作原理、Struts1与Struts2...
### SSH框架测试题知识点解析 #### 一、填空题知识点解析 1. **Hibernate的延迟加载机制**: - **概念**:延迟加载是一种优化技术,它允许Hibernate仅在真正需要某个对象关联的数据时才从数据库加载这些数据。这...
总的来说,SSH框架整合提供了强大的企业级应用开发工具,但同时也需要开发者深入理解其工作原理和优化技巧,以避免潜在的性能问题。理解并熟练掌握这些知识点对于成为一个专业的Java开发人员至关重要。
缺点:它限制您所使用的对象模型。(例如,一个持久性类不能映射到多个表)其独有的界面和可怜的市场份额也让人不安,尽管如此,Hibernate 还是以其强大的发展动力减轻了 这些风险。其他的开源持久性框架也有一些,...
14. 结论与建议:本论文对基于SSH框架的Web网站设计与实现的结论和建议进行了总结和分析,包括该框架的优点和缺点、应用前景和发展趋势等。 本论文对基于SSH框架的Web网站设计与实现进行了深入的研究和分析,为Web...
SSH 框架的缺点包括: * 学习曲线陡峭 * 需要大量的配置和设置 * 需要大量的资源和时间 SSH 框架是一个强大且灵活的框架,提供了一个灵活的框架,用于开发基于 Java 语言的应用程序。但是,需要大量的学习和实践,...