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