Spring 和 Spring Framework
Spring、Spring Framework、Spring Boot、Spring Cloud的区别。
首先不少人乐意把 Spring Framework 叫做 spring,但是 spring framework 只是 spring中的一个模型,核心是Ioc和aop,而spring是一个生态,spring 是框架。




Spring是一个生态体系(也可以说是技术体系),是集大成者,它包含了 Spring Framework、Spring Boot、Spring Cloud 等(还包括Spring Cloud data flow、spring data、spring integration、spring batch、spring security、spring hateoas),如下图所示(部分截图):
Spring Framework
Spring Framework是整个spring生态的基石,它可是硬生生的消灭了Java官方主推的企业级开发标准EJB,从而实现一统天下。
Spring Framework为基于现代企业应用提供了一个全面的编程和配置的模型 - 在任何类型部署平台上
Spring Framework为依赖注入、事务管理、WEB应用、数据访问等提供了核心的支持,专注于企业级应用程序的“管道”,以便开发团队可以专注于应用程序的业务逻辑。
Spring Boot
搭建项目的脚手架、黏合剂,整合周边生态
Spring Boot这家伙简直就是对Java企业级应用开发进行了一场浩浩荡荡的革命。如果稍微有几年工作经验的老油条,应该都记得以前的Java Web开发模式:Tomcat + WAR包。
Spring Boot能够让你非常容易的创建一个单机版本、生产级别的基于spring framework的应用。然后,“just run”即可。Spring Boot默认集成了很多第三方包,让构建独立的生产级别的Spring应用变得简单,开箱即用,以便你能以最小的代价开始一个项目。
Spring Cloud
Spring Clound的出现真正简化了分布式架构的开发
Spring Cloud事实上是一整套基于Spring Boot的微服务解决方案。它为开发者提供了很多工具,用于快速构建分布式系统的一些通用模式,例如:配置管理、注册中心、服务发现、限流、网关、链路追踪等。
Spring Boot是build anything,而Spring Cloud是coordinate anything,Spring Cloud的每一个微服务解决方案都是基于Spring Boot构建的:


Spring Cloud Alibaba
Spring Cloud Alibaba为分布式应用开发提供一站式解决方案,它包含分布式应用程序开发所需的所有组件,使你可以轻松地使用Spring Cloud开发应用程序。
使用Spring Cloud Alibaba,你只需要增加一些注解和少量的配置,即可将Spring Cloud应用连接到阿里巴巴的分布式解决方案,并可使用阿里巴巴的中间件构建分布式系统
Spring Framework主要包括什么
Spring Framework主要包括几个模块:
- 支持IoC和AOP的容器;
- 支持JDBC和ORM的数据访问模块;
- 支持声明式事务的模块;
- 支持基于Servlet的MVC开发;
- 支持基于Reactive的Web开发;
- 以及集成JMS、JavaMail、JMX、缓存等其他模块。
Spring版本5.x 和 6.x的区别


Spring官网是spring.io
为什么要学Spring Framework
Spring Framework 是其他 Spring 子项目的基础
无论是传统企业应用还是云原生微服务,Spring Framework 的核心思想(如 IoC、AOP)均贯穿始终
Spring Framework 是整个 Spring 技术栈的基石,其他子项目(如 Spring Boot、Spring MVC、Spring Cloud 等)均基于其核心功能扩展。它通过控制反转(IoC)、依赖注入(DI)和面向切面编程(AOP)等机制,为上层模块提供统一的基础设施支持
而且S pring Framework 其分层架构(如 Core、AOP、Data Access、Web 等模块)允许开发者按需选择功能,避免冗余依赖。这种灵活性使得 Spring 能够适配从传统单体应用到现代微服务的多样化需求
Spring Framework 提供与多种企业级技术(如 JDBC、JPA、Hibernate、消息队列等)的无缝集成能力,简化了复杂系统的开发
学习 Spring Framework 是掌握 Spring Boot(快速开发)、Spring Cloud(微服务)等高级框架的前提。例如,Spring Boot 的自动配置机制本质上是基于 Spring Framework 的条件化 Bean 加载实现
Spring Framework特点
- 非侵入式:Spring Framework开发应用程序时,Spring 对应用程序本身的结构影响特别小,应用代码基本不会被 Spring 特定的 API 所束缚。开发者能够在不依赖 Spring 框架的环境下对代码进行编译、测试和运行。当项目需要更换框架或者调整架构时,由于代码没有与 Spring 框架深度绑定,迁移工作会相对轻松。开发者可以逐步移除 Spring 相关的配置和依赖,而不会对业务逻辑代码造成重大影响。
- 控制反转IoC:控制反转是 Spring 框架的核心特性之一,它将对象的创建和依赖关系的管理从应用程序代码转移到了 Spring 容器中。通过控制反转,对象之间的依赖关系变得更加灵活,降低了组件之间的耦合度。
- 面向切面编程AOP:面向切面编程允许开发者将横切关注点(如日志记录、事务管理、权限验证等)从业务逻辑中分离出来,以提高代码的可维护性和复用性。通过 AOP,我们可以将通用的横切关注点代码封装到切面中,在多个业务模块中复用这些代码,减少了代码的重复编写。
- 容器:Spring 框架提供了强大的容器功能,用于管理对象的生命周期和依赖关系。IoC是一个容器,包含并且管理组件对象的生命周期,组件享受到了容器化的管理,屏蔽了大量的细节。Spring 容器通过依赖注入的方式将对象之间的依赖关系注入到对象中,使得对象之间的协作更加灵活。
- 组件化:Spring 鼓励开发者将应用程序拆分成多个独立的组件,每个组件负责特定的功能。开发者可以将不同的业务功能封装成独立的组件,这些组件可以独立开发、测试和部署。组件化的开发方式使得代码结构更加清晰,易于维护和扩展。当需要添加新的功能时,只需要开发新的组件并将其集成到应用中即可。
- 一站式:Spring 框架提供了一站式的解决方案,涵盖了企业级应用开发的各个方面。可以整合各种企业应用的开源框架和优秀的第三方类库。
Spring6 的模块组成


Spring Framework 主要是围绕 Core 部分


Spring Core:核心容器


Spring AOP


Spring Data Access


Spring Web
就是大家通常说的Spring MVC部分


Spring Message 和 Spring test


如何创建工程
父工程 spring6 子工程 你自己项目名称
开发步骤:
- 引入spring相关依赖
- 创建类,定义属性和方法
- 按照spring要求创建配置文件 xml
- spring配置文件配置相关信息
- 进行测试