Spring、Spring MVC、Spring Boot、Spring Cloud的联系和区别
目录
一、联系:层层递进,逐步封装
二、区别:各司其职,定位清晰
三、一句话总结
一、联系:层层递进,逐步封装
1. Spring 是根基
提供最核心的 IOC(控制反转) 和 AOP(面向切面) 容器功能,一切 Spring 技术都基于它。
2. Spring MVC 是 Spring 的 Web 模块
在 Spring IOC 容器之上,提供了 MVC(Model View Controller) 分层架构(数据绑定、视图解析、控制器等),解决“如何优雅地写 Web 应用”的问题。
3. Spring Boot 是快速构建 & 自动配置的脚手架
在 Spring/Spring MVC 基础上,通过“约定大于配置”和 Starter 依赖,省去繁琐的 XML/JavaConfig,解决“如何快速、零配置地启动一个 Spring 应用”的问题。
4. Spring Cloud 是分布式微服务的一站式工具箱
在 Spring Boot 之上,整合 Netflix 等开源组件,提供服务发现、配置中心、熔断限流、链路追踪等功能,解决“如何把单体拆成微服务并治理好”的问题。
二、区别:各司其职,定位清晰
维度 | Spring | Spring MVC | Spring Boot | Spring Cloud |
---|---|---|---|---|
定位 | 基础容器 & 企业级开发框架 | Web 层 MVC 框架 | 快速启动 & 自动配置 | 微服务治理框架 |
核心能力 | IoC、AOP、事务、JDBC 抽象等 | DispatcherServlet、控制器、视图解析 | Starter、自动配置、Actuator、内嵌服务器 | 服务发现、配置中心、熔断、网关、链路追踪 |
是否必须 Web | 否(可做纯后台) | 是(Web 专用) | 否(也可做非 Web) | 否(但通常运行于 Web 服务) |
依赖关系 | 最底层 | 基于 Spring | 基于 Spring + Spring MVC | 基于 Spring Boot |
配置方式 | XML/JavaConfig | XML/JavaConfig | 自动配置 + 少量 yml | 自动配置 + yml |
使用场景 | 任何 Java 应用 | 传统 Web 应用 | 单体应用、快速原型 | 微服务、云原生 |
三、一句话总结
1. Spring 是“地基”,负责对象的创建与管理。
2. Spring MVC 是“砖瓦”,帮你盖 Web 楼。
3. Spring Boot 是“施工队”,让你三天就能盖完一栋小楼。
4. Spring Cloud 是“城市规划”,把很多小楼变成一座可治理、可扩展的现代都市。