文章目录
一、SSM是什么
- SSM是Spring、SpringMVC、MyBatis这三大Java EE领域内框架的缩写
- Java EE框架可以高效的整合各种Java 技术,让开发工作变得简单
- SSM中的三大框架分别对应解决三层架构中的问题
1.1 三层架构
- 在B/S架构中,系统标准的三层架构:表现层、业务层、持久层
- 表现层:负责接收客户端请求,向客户端响应结果,负责与用户进行交互
- 业务层:主要是针对不同请求业务逻辑的处理,也可理解为对数据业务逻辑处理
- 持久层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,也就是说是对数据库,而不是对数据的操作,具体为业务逻辑层或用户界面层提供数据服务
其中,spring实现业务对象管理(业务层);spring MVC负责请求的转发和视图管理(表现层);MyBatis作为数据对象的持久化引擎(持久层)
1.2 Spring
- Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
- Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情
- Spring的核心模块实现了IoC的功能,它将类和类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描述。由IoC容器负责类的创建,管理,获取等
关于spring的更具体的介绍可以点击这个网址进行学习
还可以通过阅读Spring核心技术详解(一)来了解
1.3 SpringMVC
- Spring MVC是Spring的一部分,主要用于开发WEB应用和网络接口,它是Spring的一个模块,通过Dispatcher Servlet, ModelAndView 和 View Resolver,让应用开发变得很容易。
1.3.1 MVC
- M(model)层:模型层(dao、service、entity…)
- V(view)层:视图层(html、jsp…),负责展示数据
- C(controller)层:控制器层(servlet…),是m和v层的中间桥梁
C层接受用户的请求及用户提交的各种数据;然后调用model层来进行业务的处理;在拿到model层的处理结果后,调用对应的视图层来把结果展示给用户
1.4 MyBatis
- MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
- MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
- MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
- MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
二、SSM框架的优点
2.1 Spring的优势
(1)Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地“new”一个对象,而是让Spring框架帮你来完成这一切。
(2)通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。
2.2 Spring MVC的优势
(1)Spring MVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,使我们开发更简洁;
(2)与Spring无缝衔接;
(3)灵活的数据验证,格式化,数据绑定机制。
2.3 MyBatis的优势
(1)数据库的操作(sql)采用xml文件配置,解除了sql和代码的耦合;
(2)提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建;
(3)提供了xml标签,支持动态的sql。
2.4 SSM框架采用SpringBoot框架的好处
(1)简化配置:
- SpringBoot框架解决了传统的SS(M)框架在开发之前创建项目时需要做大量配置的问题;
- 使用SpringBoot的项目,许多配置项都已经被默认的配置过了,无须开发人员再进行配置,其核心思想有约定大于配置即开发人员都遵守相关约定即可,无需进行配置。
(2)SpringBoot框架默认集成了大量的常用依赖。
(3)关于SpringBoot其它优点,后续再体会。
2.4.1 SpringBoot特征
- 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
- 内嵌Tomcat或Jetty等Servlet容器;
- 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
- 尽可能自动配置Spring容器;
- 提供准备好的特性,如指标、健康检查和外部化配置;
- 绝对没有代码生成,不需要XML配置