SSM全称是Spring+SpringMVC+MyBatis。
SSM框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架,ssm框架是javaEE企业级开发主流技术,是每一个java开发者写程序必备技能。Spring MVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎。
SSM框架是Spring,Spring MVC和Mybatis框架的整合,是标准的MVC模式,该设计模式将整个系统划分为四层,分别是视图层(view),控制层(Controller),服务层(Service),持久层(DAO)(mapper层),
持久层:主要完成与数据库相关的操作,即对数据库的增删改查。因为数据库访问的对象一般称为Data Access Object(简称DAO),专门负责对数据库的访问。叫做DAO层(如果使用了mybatis则也叫mapper层)。dao层里面的java类主要是JDBC操作相关的代码,如获取数据库连接,执行sql语句,获取查询结果,断开连接等数据库操作。而此时获取到的数据库结果通常会将其封装为entity里面的实体类。
服务层:主要根据功能需求完成业务逻辑的定义和实现。因为它主要是为上层提供服务的,也叫业务层,也叫service层。
视图层:主要完成与最终软件使用用户的交互,需要有交互界面(UI)。因此,有人把表现层称之为web层或View层或表现层。
控制层:controller层
<1>. Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IOC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。核心ioc、aop技术,ioc解耦,使得代码复用,可维护性大幅度提升,aop提供切面编程,同样的增强了生产力。
<2>. SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
工作原理过程:
1.客户端发送请求到DispacherServlet(分发器)
2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller
3.Controller调用业务逻辑处理后,返回ModelAndView
4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图
5.视图负责将结果显示到客户端
<3>. MyBatis
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。mybatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
对于Spring学习而言,重点要掌握的就是IoC和AOP两个核心技术,而这两个核心技术都是由Spring容器表现出来的,因此学习Spring的关键就是尽可能深入地掌握Spring容器和容器中的Bean。
对于一个熟练的Spring使用者而言,他至少要明白Spring容器的本质是什么。
IoC也好,AOP也罢,都只是一个名词,Spring容器的本质无非就是通过XML或注解来驱动底层以反射执行Java代码。因此如果说Spring用得很熟练,至少要完成如下的自由转换:
XML配置(注解) <----> Java
也就是说:无论你看到什么样的XML配置(或注解),都能迅速知道Spring容器会在底层对应执行怎样的Java代码;反过来,给你任何一段Java代码,你都应该能将它使用XML(或注解)配置出来。达到这个程度之后,Spring才算用得比较熟练,这时再去学习Spring MVC也好、学习Spring Data也好、学习Spring Boot也好、学习Spring Cloud也罢,一般都能迅速明白它们的运行机制,而不是停留在表面的“依葫芦画瓢”。
Springboot
spring boot可以看做一个启动、配置、快速开发的辅助框架,本身针对的是微服务。Spring Boot是一个快速整合和自动配置的脚手架框架。
本专栏将进行以下5个内容学习:
spring、springmvc、maven、springboot、mybatisplus