Spring 和 Spring 框架的历史

Spring 于 2003 年应运而生,以应对早期 J2EE 规范的复杂性。虽然有些人认为 Java EE 及其现代继承者 Jakarta EE 与 Spring 存在竞争,但它们实际上是互补的。Spring 编程模型不包含 Jakarta EE 平台规范;相反,它与传统 EE 伞形下的精选个别规范集成

Servlet API (JSR 340)

WebSocket API (JSR 356)

并发工具 (JSR 236)

JSON 绑定 API (JSR 367)

Bean 验证 (JSR 303)

JPA (JSR 338)

JMS (JSR 914)

以及必要的用于事务协调的 JTA/JCA 设置。

Spring 框架还支持依赖注入 (JSR 330) 和通用注解 (JSR 250) 规范,应用程序开发人员可以选择使用这些规范,而不是 Spring 框架提供的特定于 Spring 的机制。最初,这些是基于通用的 javax 包。

自 Spring Framework 6.0 起,Spring 已升级到 Jakarta EE 9 级别(例如,Servlet 5.0+、JPA 3.0+),基于 jakarta 命名空间而不是传统的 javax 包。以 EE 9 为最低要求并已支持 EE 10,Spring 已准备好为 Jakarta EE API 的进一步发展提供开箱即用的支持。Spring Framework 6.0 与 Tomcat 10.1、Jetty 11 等 Web 服务器完全兼容,也与 Hibernate ORM 6.1 兼容。

随着时间的推移,Java/Jakarta EE 在应用程序开发中的作用发生了演变。在 J2EE 和 Spring 的早期,应用程序是为了部署到应用程序服务器而创建的。如今,在 Spring Boot 的帮助下,应用程序以适应开发运营和云的方式创建,嵌入式 Servlet 容器易于更改。自 Spring Framework 5 起,WebFlux 应用程序甚至不直接使用 Servlet API,并且可以在非 Servlet 容器的服务器(例如 Netty)上运行。

Spring 持续创新和发展。除了 Spring 框架,还有其他项目,如 Spring Boot、Spring Security、Spring Data、Spring Cloud、Spring Batch 等。重要的是要记住,每个项目都有自己的源代码仓库、问题跟踪器和发布节奏。请参阅 spring.io/projects 获取 Spring 项目的完整列表。