了解什么是ssh以及什么是ssm

一、什么是ssh?

  1. SSH在J2EE项目中表示了3种框架,即 Spring + Struts +Hibernate。SSH不是一个框架,而是以struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架,其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。

  2. SSH框架的系统从职能上分大致可以分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。四层的作用如下:

  • 表示层:为用户提供交互操作界面,这一点不论是对于Web还是WinForm都是如此,就是用户界面操作。
  • 业务逻辑层:负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理。根据传入的值返回用户想得到的值,或者处理相关的逻辑。
  • 数据访问层:负责数据库数据的访问。主要为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改、查。
  • 实体类层:用于描述实例,所有的实例就是整个项目的操作对象,贯穿整个层次框架。
  1. 系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IOC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

二、什么是ssm?

  1. ssm指的是 SpringMVC 做控制器(controller),Spring 管理各层的组件,MyBatis 负责持久化层。
  • spring MVC :
    是一个基于mvc的web框架,拥有控制器,作用跟Struts类似,接收外部请求,解析参数传给服务层。
    点击查看springMVC运行流程
    MVC是指:
    C - Controller:控制器。接受用户请求,调用 Model 处理,然后选择适的View户。
    M - Model:模型。业务处理模型,接受Controller的调遣,处理业务,处理数据。
    V - View:视图。返回给客户看的结果。
    说这么多举个例子吧

    你去饭店吃饭,坐下来后,服务员小妹来找你点菜。你点了个宫保鸡丁,小妹就拿着你的点菜单都后厨。后厨的师傅打开食物储藏柜,找到鸡丁,一顿爆炒,装盘。小妹端起盘子回到你的桌子。这里,你就是客户,你点菜就是发出请求(Request),小妹就是Controller,后厨就是 Model,小妹最后给的盘子及里面的内容就是View,小妹给你盘子就是响应(Respond)。Controller处理客户请求,反馈给Model。Model处理,返回数据(宫保鸡丁)给Controller(小妹)。最终,你得到了一盘吃的(View)。
  • spring
  • mybatis :
    MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
    其作用是:
    1:使用连接池,datasource,在驱动并连接的这个过程中优化并解耦
    2:统一sql存取到XML
    3:参数和结果集映射
    4:对多重复sql进行复用封装

三、共同点是什么?

  1. Spring依赖注入DI来管理各层的组件。

  2. 使用面向切面编程AOP管理事物、日志、权限等。

四、不同点是什么?

  1. Struts2 和 SpringMVC 控制器(controller)控制视图和模型的交互机制的不同,

  2. Struct和SpringMVC都是负责取转发的,但是两者针对request的请求上面区别很大,Struct是针对一个Action类来进行请求的,即一个Action类对应于一个请求,所以类拦截,请求的数据类共享。而Spring-MVC则是针对于方法级别的请求的,也就是一个方法对应于一个请求,属于方法拦截,请求的数据方法不共享。

  3. Spring-MVC的配置文件相对来说较为少,容易上手,可以加快软件开发的速度,亲身体验有效。

  4. Spring-MVC的入口是Servlet级别的而Struct的级别是Filter级别的。

  5. Hibernate是一种O/R关系型,即完成数据库表和持久化类之间的映射,而MyBitas是针对的SQL-Maping,个人理解是一种Hibernate把数据库给封装好以后,可以调用相应的数据库操作语句SQL,而MyBitas则是用的原始的数据库操作语句,Hibernate优化起来相对MyBitas较难。

  6. MyBitas入门较快,而Hibernate掌握起来相对较难。

  7. 针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程。

  8. Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

你可能感兴趣的:(了解什么是ssh以及什么是ssm)