Spring 和 Spring Framework 的历史
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 Framework 还支持依赖注入 (JSR 330) 和通用注解 (JSR 250) 规范,应用开发者可以选择使用它们,而不是 Spring Framework 提供的 Spring 特定机制。最初,这些是基于常用的 javax 包。
从 Spring Framework 6.0 开始,Spring 已升级到 Jakarta EE 9 级别(例如,Servlet 5.0+,JPA 3.0+),基于 jakarta namespace 而非传统的 javax 包。以 EE 9 作为最低版本并已支持 EE 10,Spring 准备为 Jakarta EE API 的进一步演进提供开箱即用的支持。Spring Framework 6.0 完全兼容 Tomcat 10.1、Jetty 11 和 Undertow 2.3 等 Web 服务器,以及 Hibernate ORM 6.1。
随着时间的推移,Java/Jakarta EE 在应用开发中的作用已经演变。在 J2EE 和 Spring 的早期,应用是创建并部署到应用服务器的。如今,借助 Spring Boot,应用以 DevOps 友好和云友好的方式创建,内嵌 Servlet 容器且易于更改。从 Spring Framework 5 开始,WebFlux 应用甚至不直接使用 Servlet API,可以在非 Servlet 容器(例如 Netty)的服务器上运行。
Spring 不断创新和演进。除了 Spring Framework,还有其他项目,例如 Spring Boot、Spring Security、Spring Data、Spring Cloud、Spring Batch 等等。重要的是要记住,每个项目都有自己的源代码仓库、问题跟踪器和发布周期。请访问 spring.io/projects 查看完整的 Spring 项目列表。