记2021/6/15

1. 什么是SSM?

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。
理解:由spring和springMVC和MyBatis整合而成的web框架。

2. 三者具体是做什么的?

Spring
  Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
  Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。
理解:spring拥有创建对象的权利(由xml配置完成),帮助我们在需要的时候自动创建对象。
SpringMVC
  SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
理解:springMVC在项目中,用于拦截用户请求。它的核心是分发器,就想一个指挥官一样,前台发来请求,它指挥对应的控制器去执行相应的操作,响应用户的操作。
mybatis
  mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
理解:MyBatis是对java连接数据库的封装。通过一个sqlSessionFactory实例,通过配置文件关联到实体类的映射文件,在映射文件中写查询数据库的sql。访问数据库时,sql语句会话工厂得到一个sql会话,执行sql命令。

3. 执行流程

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。
理解:前端页面发送请求,springMVC这个分发器,指挥控制层,控制层在去调用业务层处理逻辑,逻辑层在给数据持久层发送请求,持久层和数据库进行交互,得到结果。结果返回给逻辑层,逻辑层再返回给业务层,业务层再返回给控制层,控制层调用视图展现数据。