SSM(Spring + Spring MVC + MyBatis)和 Spring Boot 都是基于 Spring 框架的技术栈,但它们在使用方式、配置复杂度、设计理念上有所不同。下面是 SSM 和 Spring Boot 之间的关系及主要区别:
SSM (Spring + Spring MVC + MyBatis)
定义:一种 Java Web 应用开发的技术组合,包含三个框架:
- Spring:用于依赖注入(DI)和面向切面编程(AOP),提供核心的 IOC 容器。
- Spring MVC:Spring 的一部分,用于构建 Web 应用程序,遵循 MVC 设计模式。
- MyBatis:一个持久层框架,简化了数据库操作,支持自定义 SQL 语句。
特点:
- 灵活性:每个框架都可以独立配置,即灵活性高。
- 手动配置:需要开发者手动配置 XML 文件或注解来管理 bean、数据源、事务等。
- 稳定:这些框架已非常成熟,有大量的社区支持、文档资源。
适用场景:适用于需要高度定制化配置的企业级应用,或者对于已有系统的迁移和扩展。
详解
SSM框架是spring、spring MVC 、mybatis框架的整合,是标准的MVC模式。
标准的SSM框架有四层:dao层(mapper)、service层、controller层、View层。用spring实现业务对象管理,用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。
持久层:dao层(mapper)层
作用:与数据库进行联络的任务都封装在此。
Dao层首先设计的是接口,然后在Spring的配置文件中定义接口的实现类。
然后可以在模块中进行接口的调用来进行数据业务的处理。(不在关心接口的实现类是哪个类)
数据源的配置以及有关数据库连接的参数都在Spring的配置文件中进行配置。
业务层:Service层
作用:负责业务模块的逻辑应用设计。
先设计接口然后再设计实类,然后在Spring的配置文件中配置其实现的关联。(业务逻辑层的实现具体要调用到自己已经定义好的Dao的接口上)这样就可以在应用中调用Service接口来进行业务处理。
建立好Dao后再建立service层,service层又在controller层之下,因为既要调用Dao层的接口又要提供接口给controller层。每个模型都有一个service接口,每个接口分别封装各自的业务处理的方法
表现层:Controller层(Handler层)
作用:控制具体的业务模块流程。
配置也是在Spring的配置文件中进行,
调用Service层提供的接口来控制业务流程。
业务流程的不同会有不同的控制器,在具体的开发中可以将我们的流程进行抽象的归纳,设计出可以重复利用的子单元流程模块。
4)View层
作用:和控制层紧密结合,主要负责前台jsp页面的表示。
各层之间的联系
DAO层,Service层都可以单独开发,互相的耦合度很低,完全可以独立进行,这在开发大项目的过程中有大优势,Controller、View层因为耦合度高,因而要结合在一起开发,但也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得清晰简单。
Spring Boot
定义:诞生目的是用来简化新 Spring 应用的初始搭建和开发。以 约定大于配置的理念,减少了大量的配置工作。
特点:
- 自动配置:Spring Boot 能根据项目中的依赖自动配置 Spring 上下文,减少配置文件的编写
- 快速启动:内置许多常用的第三方库,并且可以轻松地添加 Starter 依赖,使得创建独立运行的应用变得非常简单。
- 嵌入式服务器:内嵌了 Tomcat、Jetty 或 Undertow 等服务器,可以直接打包成可执行的 JAR 文件运行。
- 生产就绪特性:提供了健康检查、指标收集、外部化配置等多种生产就绪的功能。
适用场景:适合快速开发微服务架构的应用,或者希望减少配置工作量的新项目
关系与比较
- 集成性:Spring Boot 可看作是对 SSM 技术栈的一种高级封装。Spring Boot 内置了对 Spring、Spring MVC 和 MyBatis 的支持,因此可以在 Spring Boot 项目中使用 SSM 组件,只是配置方式更简洁。
- 配置方式:SSM 需要更多的手动配置,而 Spring Boot 的自动配置极大简化了这一过程。Spring Boot 提供了大量的默认设置,让开发者专注于业务逻辑的实现。
- 学习曲线:对初学者来说,Spring Boot 因其简洁的配置,会更容易上手。而对有经验的人,SSM 会提供更多的控制权和灵活性。
- 维护成本:SpringBoot 自动处理了很多配置细节,长期看,Spring Boot 项目的维护成本更低
总之,SSM 和 Spring Boot 都是基于 Spring 生态系统的技术栈,但 Spring Boot 通过简化配置和提供一系列开箱即用的功能,进一步提高了开发效率和应用的可维护性。如果你正在开始一个新项目,并且追求快速开发和部署,那 Spring Boot 是最好选择