• ssh框架


    Struts的优缺点

    Struts优点:

    (1)实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现。

    (2)具有丰富的Tag标签库,如能灵活运用,能大大提高开发效率。

    (3)页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有很大好处。

    (4)提供Exception处理机制。

    (5)数据库链接池的管理。

    (6)支持应用国际化。

    Struts缺点:

    (1)转到展示层时,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器

    (2)Struts的Action必需是thread-safe方式,它仅仅允许一个实例去处理所有的请求。所以action用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。

    (3)测试不方便。Struts的每个Action都同Web层耦合在一起,这样它的测试依赖于Web容器,单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。

    (4)类型的转换。Struts的FormBean把所有的数据都作为String类型,它可以使用工具Commons-Beanutils进行类型转化。但它的转化都是在Class级别,而且转化的类型是不可配置的。类型转化时的错误信息返回给用户也是非常困难的。

    (5)对Servlet的依赖性过强。Struts处理Action时必需要依赖ServletRequest和ServletResponse,所有它摆脱不了Servlet容器。

    (6)前端表达式语言方面。Struts集成了JSTL,所以它主要使用JSTL的表达式语言来获取数据。可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。

    (7)对Action执行的控制困难。Struts创建一个Action,如果想控制它的执行顺序将会非常困难。甚至你要重新去写Servlet来实现你的这个功能需求。

    (8)对Action执行前和后的处理。Struts处理Action的时候是基于class的hierarchies,很难在action处理前和后进行操作。

    (9)对事件支持不够。在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种粗粒度的事件。

    Spring优缺点

    Spring优点:

    (1)Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的API特制的framework,Spring致力于解决剩下的问题。

    (2)Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。

    (3)通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。

    (4)通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。

    (5)Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。

    (6)使用Spring构建的应用程序易于单元测试。

    (7)Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。

    (8)Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。

    (9)Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。

    spring缺点:

    jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器

    Hibernate优缺点

    Hibernate优点

    (1)hibernate是基于ORM技术的开源框架,对JDBC进行了轻量级的封装,使用面向对象的思想来操纵数据库。

    (2)hibernate提供了session缓存和二级缓存,对于不需要进行复杂查询的系统,性能有提升。

    (3)使用Hibernate,移植性好(只要使用Hibernate标准开发,更换数据库时,只需要配置相应的配置文件就可以了,不需要做其它任务的操作)。

    (4)Hibernate实现了透明持久化。当保存一个对象时,这个对象不需要继承Hibernate中的任何类、实现任何接口,只是个纯粹的POJO对象。

    (5)Hibernate是一个没有侵入性的轻量级框架。

    (6)不需要手动编写SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以存储、更新、删除、加载对象,提高生产效率。

    (7)Hibernate代码测试方便。

    Hibernate缺点

    (1)hibernate学习成本比较高。

    (2)不适合有复杂的sql查询(统计)。

    (3)不适合批量操作数据(针对单一对象的增删查改)。

    文学使思想充满血与肉,他比科学和哲学更能给予思想以巨大的明确性和说明性。
  • 相关阅读:
    Android ViewPager实现选项卡切换
    Android Fragment是什么
    Android 点击文字实现跳转
    海底捞的十五天,让我重当程序员
    saltstack 实现haproxy+keepalived
    saltstack 实现系统初始化
    saltstack 实现redis主从
    python类基础
    Mysql 数据库备份工具 xtrabackup
    Python函数式编程
  • 原文地址:https://www.cnblogs.com/zpsblog/p/11111057.html
Copyright © 2020-2023  润新知