SSM框架与SSH框架

SSM框架与SSH框架

MVC,即模型(model)-视图(View)-控制器(Controller)的缩写,一种软件的设计典范,用一种业务逻辑,数据,界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

SSM框架

1:SSM框架的概念

SSM框架是spring MVC, spring和mybatis框架的整合,标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层;使用spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎。

2:Spring MVC

  1. 客户端发送请求到DispacherServlet(分发器)
  2. 由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller
  3. Controller调用业务逻辑处理后,返回ModelAndView
  4. DispacherServlet查询视图解析器,找到ModelAndView指定的视图
  5. 视图负责将结果显示到客户端

SSM框架与SSH框架

3:Spring

接触最多的估计是IOC容器,它可以装载bean(也就是我们Java中的class,也包括service dao里面的),有了这个机制,我们不用在每次使用这个类的时候为它初始化。

4:Mybatis

mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

5:使用SSM框架完成一个功能的顺序

  1. 先写实体类entity,定义对象的属性。(可以参照数据库中的表的字段来设计)
  2. 写Mapper.xml(mybatis),定义功能,对应要对数据库进行哪些操作,比如:insert,selectAll,delete…
  3. 写Mapper.java,将Mapper.xml中的操作按照id映射成Java函数
  4. 写Service.java为控制层提供服务,接受控制层的参数,完善相应功能,并返回给控制层
  5. 写Controller.java,连接页面请求和服务层,获取页面请求的参数,通过自动装配,映射不同的url到相应的处理函数,并获取参数,对参数进行处理,之后传给服务层
  6. 写JSP页面调用,请求哪些参数,获取什么数据

DataBase ===> Entity ===> Mapper.xml ===> Mapper.Java ===> Service.java ===> Controller.java ===> Jsp

SSH框架

1:SSH框架的概念

SSH框架则是Struts2,Spring和Hibernate框架的整合,其中Struts2做控制器(controller),spring管理各层组件,Hibernate负责持久化层。

2:Struts2

Struts2框架本身大致可以分为3个部分:核心控制层FilterDispatcher,业务控制器Action和用户实现的企业业务逻辑组件。

  1. 核心控制器FilterDispatcher是Struts2框架的基础,包含了框架内部的控制流程和处理机制。
  2. 业务控制器Action和业务逻辑组件是需要用户自己实现的。用户在开发Action和业务逻辑组件的通过是,还要编写相关的配置文件,供核心控制器FilterDispatcher来使用

3:Spring

Spring框架是一个分层架构,由7个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建,配置和管理bean的方式。组成Spring框架的每个模块(组件)都可以单独存在,或者与其他一个或多个模块联合实现。

每个模块的功能如下:

  1. ☆ 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
  2. IOC 和 AOP 控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器(在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。 在典型的 IOC 场景中,容器创建了所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法。

4:Hibernate

​ 1:对JDBC访问数据库的代码作了封装, 大大简化了数据访问层繁琐的重复性代码 。

​ 2:Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作

​ 3:hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

​ 4:HIbernate顺序:

  • (1):通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件
  • (2):由hibernate.cfg.xml中的读取并解析映射信息
  • (3): 通过config.buildSessionFactory();//创建Session
  • (4):sessionFactory.openSession();//打开Sesssion
  • (5):session.beginTransaction();//创建事务Transation
  • (6):persistent operate持久化操作
  • (7):session.getTransaction().commit();//提交事务
  • (8):关闭Session
  • (9):关闭SesstionFactory