当前位置: 首页 > news >正文

Spring、Spring MVC、SpringBoot、Spring Cloud的关系和区别(Spring生态项目关系和区别详解)

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

  • Spring、Spring MVC、SpringBoot、Spring Cloud的关系和区别(Spring生态项目关系和区别详解)
    • 一、框架
      • **1. Spring Framework(Spring 框架)**
      • **2. Spring MVC**
      • **3. Spring Boot**
      • **4. Spring Cloud**
    • 二、关系
      • **关系总结**
    • 三、区别
      • **区别对比**
      • **演进逻辑**
      • **示例场景**


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

Spring、Spring MVC、SpringBoot、Spring Cloud的关系和区别(Spring生态项目关系和区别详解)

Spring 生态中的各个项目(Spring、Spring MVC、Spring Boot、Spring Cloud)是逐步演进的产物,它们解决的问题不同,但彼此紧密关联。以下是它们的关系和区别:


一、框架

1. Spring Framework(Spring 框架)

  • 定位:基础框架,是 Spring 生态的基石。
  • 核心功能
    • IoC(控制反转):通过依赖注入(DI)管理对象生命周期。
    • AOP(面向切面编程):实现日志、事务等横切关注点的解耦。
    • 数据访问:整合 JDBC、ORM(如 Hibernate)。
    • 事务管理:声明式事务支持。
    • Web 支持:早期通过 Spring Web 模块提供基础 HTTP 能力。
  • 特点:功能强大但配置复杂(早期依赖 XML),需要手动集成其他模块。

2. Spring MVC

  • 定位:Spring 框架的一个模块,专注于 Web 层开发(基于 MVC 设计模式)。
  • 核心功能
    • 处理 HTTP 请求/响应。
    • 支持 RESTful API。
    • 视图解析(JSP、Thymeleaf 等)。
    • 与前端技术(如 JSON 序列化)集成。
  • 依赖关系
    • 基于 Spring Framework,需手动配置 DispatcherServlet、视图解析器等组件。
  • 典型场景:构建传统 Web 应用(如 JSP + 后端)。

3. Spring Boot

  • 定位简化 Spring 应用的开发和部署,是 Spring 的“脚手架”。
  • 核心功能
    • 自动配置:根据依赖自动配置 Bean(如引入 spring-boot-starter-web 自动配置 Tomcat 和 Spring MVC)。
    • 内嵌服务器:默认集成 Tomcat/Jetty,无需部署 WAR 包。
    • 起步依赖(Starter):一键式依赖管理(如 spring-boot-starter-data-jpa)。
    • Actuator:提供应用监控和管理端点。
  • 与 Spring 的关系
    • 基于 Spring Framework,通过约定大于配置减少开发复杂度。
    • 不需要替代 Spring,而是让 Spring 更易用。
  • 典型场景:快速构建独立运行的微服务或单体应用。

4. Spring Cloud

  • 定位:基于 Spring Boot 的 分布式系统工具集,用于构建微服务架构。
  • 核心功能
    • 服务治理:服务注册与发现(Eureka、Consul)、配置中心(Spring Cloud Config)。
    • 负载均衡:Ribbon、OpenFeign。
    • 熔断与限流:Hystrix/Sentinel。
    • 网关路由:Spring Cloud Gateway、Zuul。
    • 分布式追踪:Sleuth + Zipkin。
  • 依赖关系
    • 基于 Spring Boot 的快速开发能力,整合 Netflix OSS、Alibaba 等生态组件。
  • 典型场景:微服务架构下的服务拆分、治理和监控。


二、关系

关系总结

项目依赖关系核心目标典型使用场景
Spring提供基础框架(IoC/AOP/事务)任何 Java 企业级应用
Spring MVC依赖 Spring Framework处理 Web 层逻辑传统 MVC 架构的 Web 应用
Spring Boot基于 Spring,简化配置快速开发独立应用微服务单体、REST API 开发
Spring Cloud基于 Spring Boot构建分布式系统微服务架构下的服务治理和协作


三、区别

区别对比

  1. Spring vs Spring Boot

    • Spring 是基础框架,Spring Boot 是 Spring 的“加速器”,简化配置和部署。
  2. Spring MVC vs Spring Boot

    • Spring MVC 是 Web 层框架,Spring Boot 可以自动配置 Spring MVC(通过 spring-boot-starter-web)。
  3. Spring Boot vs Spring Cloud

    • Spring Boot 用于快速开发单体应用,Spring Cloud 基于 Boot 构建分布式系统(微服务)。

演进逻辑

  1. Spring Framework 解决了企业级开发的基础问题(IoC、AOP、事务等)。
  2. Spring MVC 在 Spring 基础上解决了 Web 层开发问题。
  3. Spring Boot 通过自动配置和起步依赖,让 Spring 应用开发更简单。
  4. Spring Cloud 在 Spring Boot 的便捷性上,解决分布式系统的复杂性问题(如服务发现、熔断等)。

示例场景

  • 单体应用:Spring Boot + Spring MVC + Spring Data JPA。
  • 微服务架构:Spring Boot(每个微服务) + Spring Cloud(服务治理、配置中心、网关等)。
  • 传统企业应用:Spring Framework + Spring MVC + XML 配置。

📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

相关文章:

  • wpf 输入框 在输入时去除水印
  • Ubuntu环境下如何管理系统中的用户:创建用户、删除用户、修改密码、切换用户、用户组管理
  • C++-Lambda表达式
  • VLM Qwen2.5VL GRPO训练微调 EasyR1 多机多卡训练(2)
  • 代码随想录算法训练营第60期第二十二天打卡
  • Linux diff 命令使用详解
  • 重构之道:识别并替换不合适使用的箭头函数
  • 19.9/Q1,GBD数据库高分文章解读
  • React pros比较机制
  • K8s ConfigMap实战:像设置手机一样管理配置!
  • 探索 Disruptor:高性能并发框架的奥秘
  • 单一职责原则(SRP)
  • Nginx核心功能及正则表达
  • 使用arduino控制超声传感器HC-SR04测量距离
  • 清洗数据集
  • C#编程精要:局部变量、类型推断与常量深度解析
  • HTTP和HTTPS
  • 内部类(3):匿名内部类
  • 拆解一个550-800Mhz的LC滤波器内部大图配测试曲线
  • 前端应用开发技术历程的简要概览
  • 中国海警局回应日本民用飞机侵闯我钓鱼岛领空:依法警告驱离
  • 云南省政协原党组成员、秘书长车志敏接受审查调查
  • 人民日报头版头条:青春为中国式现代化挺膺担当
  • 武汉大学新闻与传播学院已由“80后”副院长吴世文主持工作
  • 上海与世界|黄菊与上海建设中国式全球城市
  • 苹果手机为何无法在美制造?全球供应链难迁移