参考书籍:

《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生态核心成员

二. IOC