Spring、Spring MVC、MyBatis 和 Spring Boot的关系

Spring、Spring MVC、MyBatis 和 Spring Boot的关系

首先辨析SSM 中,两个S代表什么,是Sping 和SpringMvc

Spring的功能,可以概括为五大核心模块 ,SpringMVC 是其中的第四大核心模块,也就是Spring Web(Web 开发)模块,也就是说SpringMVC是spring的一个模块。

Spring核心模块:

(1) Spring Core(核心容器)

实现Spring的两大核心功能:控制反转和依赖注入

模块 功能
spring-core 提供 IoC(控制反转)和 DI(依赖注入)基础
spring-beans 管理 Bean 的生命周期(如 @Component、@Bean)
除了这两种,还有其他模块功能
关键注解:

@Component(通用组件)

@Service(业务层)

@Repository(数据访问层)

@Autowired(依赖注入)

@Configuration + @Bean(Java 配置类)

(2) Spring AOP(面向切面编程)
模块 功能
spring-aop 提供 AOP 支持(如日志、事务管理)
spring-aspects 集成 AspectJ(更强大的 AOP 功能)

关键注解:

@Aspect(定义切面)

@Before / @After / @Around(增强方法)

@Transactional(声明式事务)

(3) Spring Data Access(数据访问)
模块 功能
spring-jdbc 简化 JDBC 操作(如 JdbcTemplate)
spring-tx 事务管理(如 @Transactional)

关键注解:

@Transactional(事务管理)

@Repository(数据访问层)

(4) Spring Web(Web 开发)

此处就是我们平时说的SpringMVC'

模块 功能
spring-web 基础 Web 功能(如 HttpMessageConverter)
spring-webmvc Spring MVC 框架(@Controller、@GetMapping)
spring-websocket WebSocket 支持

关键注解:

@Controller / @RestController

@RequestMapping / @GetMapping / @PostMapping

@RequestBody / @ResponseBody

(5) Spring Test(测试支持)
模块 功能
spring-test 集成测试(如 @SpringBootTest)

关键注解:

@SpringBootTest(启动完整 Spring 上下文)

@MockBean(模拟依赖)

总结:
什么属于SpringMVC?
什么属于SpringMVC之外的部分?

以一个完整项目为例,

一个完整的Springboot整合的ssm项目中,可以把view层(也就是前端页面那些),controller层的各种@xxxMapping、@Controller ,以及model(也就是数据模型)层,认为是SpringMVC

而在service层,dao层写的各种@Component以及他的变种(比如@Service(业务层)

@Repository(数据访问层)),还有使用的依赖注入的 @Autowired这些使用的地方就可以说是属于Sping,因为这些是实现的spring的核心功能。

接下来,辨析,SpringBoot和SSM的关系

实际开发历程中,SSM三项是一个完整项目的结构,在Springboot出现之前,一个SSM项目resources需要以下配置,很多xml文件,非常繁琐

springboot出现后,讲配置文件整合,只需少量properties/yml配置文件,如下图

其他区别

springboot其实对于业务逻辑方面,没有对于ssm的过多优化,更多的是在项目配置上进行集成,方便开发者开发。

相关推荐
Joy T12 小时前
聊天系统中五大ID的演进与实战解析
java·前端·人工智能·spring·agent入门
萧瑟余晖14 小时前
Spring 事务管理与数据访问详解
spring
代码什么用14 小时前
使用javassist生成类 && MyBatis中接口代理机制及使用
mybatis
paopaokaka_luck17 小时前
非遗文物数字化小程序(AI非遗问答、ONNX图像识别、协同过滤推荐、ECharts数据分析、非遗知识浏览与互动、文创商城订单闭环、文化活动报名签到、社区交流)
javascript·spring boot·mysql·数据分析·echarts·mybatis
弈栈录19 小时前
Spring MVC 请求处理流程与核心源码解析
后端·架构·mvc
韩曙亮20 小时前
【JavaEE】MyBatis 基本用法 ⑤ ( 单条件查询 | 多条件查询 | 多条件动态查询 | 单条件动态查询 )
java·sql·java-ee·mybatis·mapper·sql映射
萧瑟余晖20 小时前
Spring 事件机制与条件装配详解
spring
Wx-bishekaifayuan20 小时前
springboot陨石鉴收系统96265-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·spring·课程设计
x-Achan21 小时前
Redis实现方案:更新策略、穿透、雪崩、击穿、工具封装
java·spring boot·redis·spring·bootstrap·mybatis
步行cgn1 天前
Spring 全注解开发详解
java·后端·spring