zoukankan      html  css  js  c++  java
  • SSH的优缺点比较

    SSH优缺点

    常说的好处 开源
    常说的坏处 配置文件过大

    struts

    优点:
              收集,验证表单数据相比传统servlet简单
              优雅的实现可配置的请求转发

    缺点:
              属侵入设计(actionform,action都无法复用)
              与serlvetAPI严重耦合..无法摆脱容器
              action与web层耦合.不方便测试
              标准struts的action是非线程安全(很多简历上写着"精通Struts"的高手们都忽视的问题)

    Spring

    优点:
              IoC  aop
              对象容器
                    管理对象的生命周期(集成struts摆脱线程问题)
              测试也变得方便
              多数代码没有侵入spring的API
              对于hibernate有很好的支持
              权限,email支持,调度任务,权限,事务等等

    缺点:
              不支持分布式部署。
              不是一站式方案

               使用了反射来管理其容器中的bean,在程序中增大了内存和运行计算的时间,当然,这和spring带来的管理方便的好处来比,可以把此缺点忽略不计。

    hibernate

    优点:
              ORM 使数据层更加对象化..摆脱所谓的阻抗不匹配
              sql方言的存在使得开发不用过多考虑 数据库差异 的问题
              非侵入式设计

    缺点:
              个人感觉熟练使用的话曲线太陡..(尤其对于多表间复杂查询)

              不太适合做复杂的select语句查询

    不熟悉:
              Transaction(一般都直接交给spring了..接触不错..demo级别)
              缓存机制(Session的缓存和SessionFactory的缓存(内置缓存和外置缓存))

               聚集性操作数据(这种时候jdbc也白费吧...还是存储过程)

    SSH优缺点:
    优点
    struts: 相对于之前的框架turbine和直接使用servlet,使用配置文件减少了代码的编写量,提高了易用性,以及对url管理的一致性,增加了表单验证、formbean等特性,提高了程序的规范性。还有一个很重要的优点是稳定性高,经过多年的使用,相比于其他的控制层框架,对稳定性高要求高的话,用struts可以保证稳定性。
    hibernate:相对于jdbc,以操作对象的方式去操作数据库,程序员可以不用考虑数据库的sql语句的具体形式,直接在对象上操作,对象在数据库上的操作,交给了hibernate API去转换执行。减少了代码量,减轻了程序的耦合度,与数据库无关。可以“一次编写,到处运行”。
    spring:令人称赞的是IOC、AOP和数据库事务的自动管理,集成对各种其他框架的良好支持,配置过程中高度动态化,低耦合和低侵入性,在应用中起一个小型容器(contaioner)的作用,可以管理在容器中的框架、servlet、bean,管理他们的生命周期和内存分配,具“一站式架构”的特点。
    缺点
    struts:action被设计成线程不安全的,配置文件众多、繁杂,代码和Servlet的耦合度比较高。
    hibernate:因为使用了ORM映射,把对对象的操作转换成对数据库的操作,实际上还是转成了调用JDBC来操作数据库,比直接使用JDBC的效率低。再者就是hibernate的特性强大,如果不深入了解hibernate的特性,发挥不出hibernate的强大特性。使用好hibernate的前提是对数据库和sql的高度熟悉,否则也用不好hibernate.
    spring:使用了反射来管理其容器中的bean,在程序中增大了内存和运行计算的时间,当然,这和spring带来的管理方便的好处来比,可以把此缺点忽略不计。

  • 相关阅读:
    继承
    redis面试题收集
    spring知识点
    jvm类加载
    jvm回收机制
    HashMap和ConcurrentHashMap
    java基础
    spring-quartz整合
    alibaba-sentinel-1.8变化
    springcloud执行流程理解图
  • 原文地址:https://www.cnblogs.com/elenno/p/SSH_Advantage_Disvantage.html
Copyright © 2011-2022 走看看