Spring、SpringMVC和SpringBoot的关系,看这一篇就够了

本文深入解析Spring、SpringMVC及SpringBoot的区别与联系,探讨各框架的核心原理与组成,以及SpringBoot如何简化Spring应用的开发与部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、概念

1、Spring

Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。

2、SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。SpringMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校验等。SpringMVC是一个MVC的开源框架,SpringMVC=struts2+spring,springMVC就相当于是Struts2加上Spring的整合。

3、SpringBoot

Springboot是一个微服务框架,延续了spring框架的核心思想IOC和AOP,简化了应用的开发和部署。Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题--->习惯大于约定。

二、原理和结构

1、Spring的原理和组成

Spring为简化我们的开发工作,封装了一系列的开箱即用的组件功能模块,包括:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test等。如下图:

Spring官方结构

简化的理解图:

简化逻辑图

 

2、SpringMVC的原理和组成

从上图中可以看出:SpringMVC是属于SpringWeb里面的一个功能模块(SpringWebMVC)。专门用来开发SpringWeb项目的一种MVC模式的技术框架实现。其原理如下:

SpringMVC原理流程

MVC:Model(模型)、VIew(视图)、Controller(控制器);我们从开始接触并学习javaWeb开发就知道MVC这一种架构,如早起的Sturts1、Sturts2等。

3、SpringBoot的原理和特性

Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的XML配置,为更快,更高效的开发生态系统铺平了道路。

Spring Boot中的一些特点:

  1.  创建独立的spring应用。
  2.  嵌入Tomcat, Jetty Undertow 而且不需要部署他们。
  3.  提供的“starters” poms来简化Maven配置
  4.  尽可能自动配置spring应用。
  5.  提供生产指标,健壮检查和外部化配置
  6.  绝对没有代码生成和XML配置要求。

组成和结构如下图:

SpringBoot架构组成

从图中可以看出SpringBoot是包含了Spring的核心(IOC)和(AOP);以及封装了一些扩展,如Stater:

SpringBootStarter

 

三、区别与总结

1.简单理解为:Spring包含了SpringMVC,而SpringBoot又包含了Spring或者说是在Spring的基础上做得一个扩展。

三者区别对比

 

2、关系大概就是这样

spring mvc < spring < springboot

3、Spring Boot 对比Spring的一些优点包括

  • 提供嵌入式容器支持
  • 使用命令java -jar独立运行jar
  • 在外部容器中部署时,可以选择排除依赖关系以避免潜在的jar冲突
  • 部署时灵活指定配置文件的选项
  • 用于集成测试的随机端口生成

4、结论

为了便于理解,可以简单看成上述spring mvc < spring < springboot的关系,但是Spring Boot既是对Spring的扩展,使开发,测试和部署更加方便。也增加了SpringBoot本身的一些功能,Sarter依赖、main函数启动入口,自动化配置等使得SpringBoot优于Spring的实现。

 


既然都看完了整篇文章,相信对你一定有所帮助。原创不易,勿做伸手党。

点击下方【打赏】小编,或者关注公众号给予支持,你们的每一份鼓励都将是小编伟大的动力。


同名原创公众号:程序大视界

 

<think>嗯,用户想了解Spring家族中四个核心项目的区别与联系——SpringSpringMVCSpringBootSpringCloud。这个问题其实很典型,很多Java开发者初期都会混淆这些概念。翻看之前的引用材料,用户提供的两篇参考文章质量不错。引用1直接点明这是四个独立项目但同属Spring家族,而引用2里详细解释了SpringBoot的"约定优于配置"特性,还特别说明了自动装配机制。这些内容正好能用来构建系统的对比框架。用户可能正在学习Spring生态体系,或者需要为技术选型做调研。ta的提问方式很清晰,说明有一定技术基础但需要体系化的梳理。考虑到Spring技术栈的复杂性,我需要把抽象概念实际应用场景结合起来说明。先从基础组件开始:SpringFramework是地基,提供IOCAOP等基础设施。SpringMVC作为Web层解决方案构建在这之上,处理HTTP请求响应。而SpringBoot通过自动化配置把前两者打包成开箱即用的开发体验——就像预制房屋组件,开发者不用再操心钉子该钉在哪里。最高层的SpringCloud则用这些组件搭建分布式系统,解决微服务架构特有的问题。特别要注意的是,这些技术不是互斥关系而是叠加关系。比如一个SpringCloud微服务必定会同时使用SpringBootSpringMVC。在解释时要避免让用户产生"四选一"的误解。最后准备的问题既要覆盖技术原理(如自动装配机制),也要考虑实用场景(比如技术选型依据)。用户看起来是好学深思的类型,这类深度问题应该正合ta心意。</think> 以下基于核心框架的定位与协作关系,系统梳理Spring生态中四大项目的区别与联系: --- ### **1. Spring Framework** **定位**:基础框架(基石) **核心功能**: - **IoC容器**:管理对象生命周期与依赖注入 - **AOP支持**:实现横切关注点(日志、事务等) - **数据访问**:JDBC、ORM集成模板(如`JdbcTemplate`) **场景**:企业级Java应用的通用解决方案 --- ### **2. Spring MVC** **定位**:Spring Framework的**Web层扩展** **核心功能**: - **MVC架构**:分离Model、View、Controller - **请求处理**:通过`DispatcherServlet`路由HTTP请求 - **视图解析**:支持JSP、Thymeleaf等模板引擎 **关系**: - 依赖Spring Framework(如IoC容器管理Controller) --- ### **3. Spring Boot** **定位**:**快速开发脚手架**(解决Spring配置痛点) **核心创新**: - **约定优于配置** - 自动依赖管理:`Starter`包(如`spring-boot-starter-web`) - 嵌入式容器:默认集成Tomcat(无需独立部署) - **自动装配** - 通过`@EnableAutoConfiguration`加载`META-INF/spring.factories` - 条件化Bean注册(如`@ConditionalOnClass`) **优势**: > "减少传统Spring繁琐配置,使开发者聚焦业务逻辑"[^2] --- ### **4. Spring Cloud** **定位**:**分布式系统全家桶** **核心能力**: - **微服务治理**:服务发现(Eureka)、配置中心(Config) - **容错机制**:熔断(Hystrix)、负载均衡(Ribbon) - **网关路由**:Spring Cloud Gateway **协作关系**: - 构建于Spring Boot之上,依赖其**快速启动****自动装配**特性 - 整合Netflix OSS等组件,提供分布式解决方案 --- ### **关键区别总结** | **项目** | 核心目标 | 依赖关系 | 典型应用场景 | |----------------|--------------------------|----------------------------|--------------------------| | Spring | 提供企业级基础设施 | 无 | 通用Java后端应用 | | Spring MVC | 实现Web层MVC架构 | 依赖Spring Framework | 传统Web应用开发 | | Spring Boot | 简化配置、快速启动 | 依赖Spring Framework | 微服务单体模块/独立应用 | | Spring Cloud | 构建分布式系统 | 依赖Spring Boot | 微服务集群治理 | > **类比理解**: > - `Spring` ≈ 地基与钢筋 > - `Spring MVC` ≈ 房屋的窗户与门(特定功能模块) > - `Spring Boot` ≈ 预制房屋(拎包入住) > - `Spring Cloud` ≈ 城市级社区规划(多房屋协作)[^1] --- ### **典型协作流程** ```mermaid graph LR A[Spring Framework] -->|提供核心容器| B(Spring Boot) B -->|简化配置| C[Spring MVC] B -->|启动基础| D[Spring Cloud] D -->|分布式扩展| E[微服务集群] ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序大视界

原创不易,请给点支持和鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值