参考书籍:
《SpringBoot3入门与应用实战》LinkedBear 著
一. Spring框架介绍
1. Spring概述
Spring Framework 是一个开源的、分层的一站式企业级 Java 开发框架。其官方描述指出,它为任何类型的部署平台上的 Java 企业应用提供了全面的编程和配置模型,其核心价值在于为应用程序提供基础架构支持,使开发团队能专注于业务逻辑,而非特定的部署环境。
综合来看,该框架以控制反转(IoC)和面向切面编程(AOP)为核心,具有松耦合、可配置的特性。它不仅涵盖了表现层、业务层、持久层等企业级开发的各领域解决方案,还能便捷地整合各类第三方开源技术。因此,Spring Framework 是一个功能强大的基础型框架,旨在降低企业级开发的复杂性,绝大多数 Java 应用都能从中受益。
2. Spring发展史
Spring Framework 的发展历程漫长而富有转折。其起源可追溯至 1997 年,当时 IBM 为应对企业级 Java(J2EE,现称 Jakarta EE)开发提出了 EJB(Enterprise JavaBean)技术思想,该思想于 1998 年被纳入 Java 体系,成为 J2EE 的核心规范之一。2002 年,EJB 2.0 版本一度盛行,但因其本身是重量级框架,侵入性强且学习与开发成本高昂,给开发者带来了较大负担。
僵局在 2002 年被 Rod Johnson 打破,他在著作《Expert One-on-One J2EE Design and Development》中对当时 J2EE 架构的臃肿与低效提出质疑。2004 年 3 月,Spring Framework 1.0.0 正式发布;同年 6 月,Rod Johnson 在《Expert One-on-One J2EE Development without EJB》中进一步倡导以轻量、高效的 Spring 替代 EJB。Spring 并非与 J2EE 对立,而是通过 IOC 和 AOP 等思想对其予以补充,提供了更优秀的底层模块与特性。尽管 EJB 3.0 后来也转向轻量化,但 Spring 已成为事实上的行业标准,并已发展至 6.x 版本。
在版本管理方面,Spring 同时维护 6.x、5.x 及 4.x 等多个主线版本,其不同版本后缀具有特定含义:GA 代表正式发行版本,是项目开发中必须使用的稳定版本;CURRENT 指最新正式版,含最新特性与修复,但为避免潜在风险,项目中通常不推荐使用;SNAPSHOT 为尚未正式发布的迭代快照版,可能包含已知 Bug;M1、M2 等属于里程碑预览版,会引入新特性并进行大量优化;RC1、RC2 等则是候选发行版,作为正式发布前的最后预览阶段。

3. Spring的组成
Spring Framework 采用分层架构设计,其核心是一个充分体现控制反转(IoC)思想的IoC容器,它由 core、beans、context 和 expression 等基础模块构成,为整个框架提供了根基。
在此之上,AOP 作为面向对象编程的补充,允许开发者定义切入点和增强器,将通用逻辑与业务代码分离,有效降低了耦合度。
在数据访问层面,Spring 抽象出 jdbc、orm、tx 等模块,提供了一套访问关系型数据库的通用模板,简化了数据操作,并借助 AOP 实现了声明式事务功能。
对于Web应用,框架提供了基于传统 Servlet API 的 WebMvc 和响应式编程模型 WebFlux 两种技术栈,支持多种视图层技术,并从 4.0 版本起开始支持 WebSocket。
此外,Spring 高度重视测试,它能够整合不同的单元测试框架,便于进行高效的单元测试与集成测试,这构成了企业应用开发中不可或缺的一环。
4. Spring生态核心成员
