在实训的10天把ssm重新复习了一遍。SSM框架即Spring+SpringMVC+MyBatis。
1.Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java 开发框架,Spring使用基本的JavaBean来实现。 简单来说,Spring有着两大思想,一个是控制反转(IoC)和面向切面(AOP)。
Spring在项目中就像一个大工厂,负责装配。
1.1 IOC(控制反转)
所谓控制反转,就是指把生成对象的权力转换,交给spring来控制,对象与对象之间的耦合度降低,不需要知道怎么实现的,只需要拿来用即可,Spring会把它一一配好,说是说一一配好,其实还是需要我们手动去写配置,刚开始入门的时候配置是真的繁琐。(后面靠SpringBoot可以解决这烦人的配置)
1.2 AOP(切面编程)
其实在我看来所谓的切面编程就是一种代理方法。生成一个代理对象,然后将方法切入到对象的前面后面和异常,这样做能减少重复代码的使用。就比如操作数据库,每次都要开启事务,提交事务,这些事情完全可以交给代理对象实现。
2.Spring MVC
分离了控制器、模型对象、分派器以及处理程序对象的角色,分离之后按需求实现,SpringMVC就是相当于把原本Servlet的事给全干了,但是他比Servlet方便,在SpringMVC中叫做Controller(控制器),一共 有下面几个组件。
1.前端控制器(DispatcherServlet) 2. 处理器映射器(HandlerMapping) 3. 处理器(Handler) 4. 处理器适配器(HandlAdapter) 5. 视图解析器(View Resolver) 6. 视图(View)
org.springframework.web.servlet.DispatcherServlet相当于过滤器,所有的请求都要先经过这个控制器,然后来决定你要去哪,你要去执行哪个方法,这个核心控制器里面来,他在根据你的请求信息给你分配方法执行,然后如果你的方法返回值是String,那他就会根据视图解析器去寻找有没有那个JSP或者html页面,然后给你返回,如果是一个对象,他可以返回一个Json字符串。
3.MyBatis
是一个基于Java的持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。mybatis框架,这个是针对持久层的框架,他对数据库进行了一点封装,但是并不像hibernate那样这么彻底,还是需要手动去写sql语句,所以可以对数据库查询操作进行调优。
mybatis感觉比较困难的地方就是一对多和多对一,一对多感觉自己还不是特别熟练还是注意一下。之后可以使用MyBatis Plus来快速生成。
4.最终的ssm整合
而ssm就是将三个框架进行整合基于三层架构的模式,整合的思路是将事务的控制交给Spring进行声明式事务控制,将Session工厂交给Spring容器进行管理,从容器中获得执行操作的Mapper实例。