Spring Framework vs Spring Boot vs Spring Cloud
1. Spring Framework
- 定位:基礎框架,提供核心的IoC容器、AOP、事務管理、數據訪問、Web MVC等能力。
- 特點:
- 模塊化設計:可單獨使用某些模塊(如僅用Spring JDBC)
- 配置復雜:需要手動配置XML或注解
- 靈活性高:適合需要精細控制的項目
- 典型場景:傳統單體應用,或需要高度定制化的場景
2. Spring Boot
- 定位:基于Spring的快速開發框架
- 核心改進:
- 自動配置:通過
@EnableAutoConfiguration
- 約定優于配置:默認提供合理配置
- 內嵌服務器:無需部署WAR包
- Starter依賴:簡化依賴管理
- 自動配置:通過
- 典型場景:快速構建獨立運行的微服務或單體應用
3. Spring Cloud
- 定位:基于Spring Boot的分布式系統工具集
- 核心功能:
- 服務治理:服務注冊與發現、負載均衡
- 配置中心:統一管理配置
- 熔斷與容錯:Hystrix或Sentinel
- API網關:Zuul或Spring Cloud Gateway
- 分布式追蹤:Sleuth + Zipkin
- 典型場景:構建和管理微服務集群
三者的關系
技術棧層級
Spring(基礎) → Spring Boot(快速開發) → Spring Cloud(分布式擴展)
協作示例
開發微服務時:
- 用Spring Boot構建單個服務
- 用Spring Cloud連接成分布式系統
- 底層依賴Spring核心功能
對比表格
特性 | Spring Framework | Spring Boot | Spring Cloud |
---|---|---|---|
定位 | 基礎框架 | 快速開發框架 | 微服務工具集 |
核心功能 | IoC、AOP、事務等 | 自動配置、內嵌服務器 | 服務發現、配置中心等 |
配置方式 | 手動配置XML/注解 | 約定優于配置 | 基于Boot+分布式組件 |
適用場景 | 需要精細控制的項目 | 獨立應用或簡單微服務 | 分布式微服務系統 |
如何選擇?
- 單體應用 → Spring Boot
- 微服務架構 → Spring Boot + Spring Cloud
- 深度定制 → Spring Framework