zoukankan      html  css  js  c++  java
  • 整理SSH框架的优缺点

    Hibernate优点
    (1) 对象/关系数据库映射(ORM)
    它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想
    (2) 透明持久化(persistent)
    带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBeans/POJO,这个对象没有实现第三方框架或者接口,唯一特殊的是他们正与(

    仅仅一个)Session相关联。一旦这个Session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用。(例如,用作跟表示层打交道的数据传输对象。)  

             
    (3) 事务Transaction(org.hibernate.Transaction)
     应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。某些情况下,一个Session之内可

    能包含多个Transaction对象。尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的。
    (4) 它没有侵入性,即所谓的轻量级框架
    (5) 移植性会很好
    (6) 缓存机制,提供一级缓存和二级缓存
    (7) 简洁的HQL编程
     
    2. Hibernate缺点
    (1)  Hibernate在批量数据处理时有弱势
    (2) 针对单一对象简单的增删查改,适合于Hibernate,而对于批量的修改,删除,不适合用Hibernate,这也是OR框架的弱点;要使用数据库的特定优化机制的时候,不适合用




    Spring优缺点  

    它是一个开源的项目,而且目前非常活跃;它基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因

    为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的 接口,采用IoC使得可以很容易的实现bean的装

    配,提供了简洁的AOP并据此实现Transcation Managment,等等
    优点
    a. Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,Spring致力于解决剩下的问题。
    b. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。
    c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个魔法般的属性项或系统属性

    感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性。Inversion of Control的使用(在下面讨论)帮助完成了这种简化。
    d. 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。
    e. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。
    f. 使用Spring构建的应用程序易于单元测试。
    g. Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。
    h. Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你

    仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。 
    i. Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。
    Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。

    spring缺点:

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



    Struts的优点:
    1:Struts是开源框架,这是它的优点,使开发者能更深入的了解其内部实现机制。
    2:实现MVC模式,结构清晰,是开发者只关注业务逻辑的实现。
    3:具有丰富的Tag可以用,Struts的标签库,如能灵活运用,能大大提高开发效率。
    4:页面导航,页面导航将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期维护有着莫大

    的好处,尤其当另一个开发团队接受这个系统的时候,这种优势将体现得更加明显。
    5:提供Exception处理机制。
    6:数据库链接池的管理。

    7:支持应用国际化。

    Struts的缺点:

    层面太多,对小应用不适合,远不如JSP+JAVABEAN简洁快速!




    Struts2 的优点:
    Struts2比Struts1已经有了很大的进步,优点很多,其中主要两个是:对框架API和ServletAPI的依赖减少,可扩展性提高。

    Struts2的Action可以实现框架提供的Action接口也可以不实现这个接口。实际上框架Strut2的Action的要求很低,只要一个类,包含一个无参的、返回值类型为String的方法就行。其实Struts2的Action就是一个POJO。如果用户写一个类实现框架提供的Action接口或者继承框架提供的ActionSupport类, 则可以利用框架中的其他一些功能。比如在,Action接口中定义了一些常量,这些常量通常作为返回值共处理方法调用。

    由于Struts2的Action对框架API和Servlet API的依赖减少,因此可测程度大大提高。

    Struts2的可扩展性提高了。Struts2的核心jar包中由一个struts-default.xml文件,在该文件中设置了一些默认的bean,resultType类型,默认拦截器栈等,所有这些默认设置,用户都可以利用配置文件更改,可以更改为自己开发的bean,resulttype等。

    因此用户开发了插件的话只要很简单的配置就可以很容易的和Struts2框架融合,这实现了框架对插件的可插拔的特性。


    面向切面编程的思想在Strut2中也有了很好的体现。最重要的体现就是拦截器的使用。拦截器就是一个一个的小功能单位,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个、Action中就可以。

     
    Struts2 的缺点:
    我认为Struts2还是有一些不足之处的,我简单例举一下,不知道算不算缺点。

    一就是在Struts2中Action中取得从jsp中传过来的参数时还是有点麻烦。可以为Struts2的Action中的属性配置上Getter和Setter方法,通过默认拦截器,就可以将请求参数设置到这些属性中。如果用这种方式,当请求参数很多时,Action类就会被这些表单属性弄的很臃肿,让人感觉会很乱。还有Action中的属性不但可以用来获得请求参数还可以输出到Jsp中,这样就会更乱。假设从JSP1中获得了参数money=100000,但是这个Action还要输出到JSP2中,但是输出的格式却不同,money=100,000,这样这个Action中的money中的值就变了。

    关于校验那一块,感觉太烦乱,也太细化了,如果校验出错的只能给用户提示一些信息。如果有多个字段,每个字段出错时返回到不同的画面,这个功能在Strut2框架下借助框架提供的校验逻辑就不容易实现

  • 相关阅读:
    Mac实用快捷键大全
    Java 12 新特性概述
    java sdk官网直接下载地址
    使用SqlBulkCopy类实现导入excel表格
    框架页面高度自动刷新Javascript脚本
    从MyEclipse到IntelliJ IDEA ——让你脱键盘,全键盘操作
    带你走进EJB--将EJB发布为Webservice(1)
    带你走进EJB--将EJB发布为Webservice(2)
    poj 3042 Grazing on the Run
    算法导论:比较排序算法笔记
  • 原文地址:https://www.cnblogs.com/XQiu/p/5264884.html
Copyright © 2011-2022 走看看