资料内容:
2.2. Spring和Spring框架的历史
作为对早期 J2EE 规范的复杂性的回应,Spring于2003年诞生了。虽然有些人认为Java
EE及其现代的继任者Jakarta
EE与Spring有竞争关系,但事实上它们是互补的。Spring编程模型并不拥抱Jakarta
EE平台规范;相反,它与从传统的EE伞中精心挑选的个别规范进行整合。
• Servlet API (JSR 340)
• WebSocket API (JSR 356)
• Concurrency Utilities (JSR 236)
• JSON Binding API (JSR 367)
• Bean Validation (JSR 303)
• JPA (JSR 338)
• JMS (JSR 914)
• 以及JTA/JCA的设置,以便在必要时进行事务协调。
Spring框架还支持依赖注入( JSR 330)和通用注解( JSR
250)规范,应用程序开发人员可以选择使用这些规范来代替Spring框架提供的Spring专用机制
。最初,这些都是基于常见的 javax 包。
从Spring框架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和Undertow 2.3作为Web服务器完全兼容,同时也与Hibernate ORM 6.1兼容。
随着时间的推移,Java/Jakarta
EE在应用程序开发中的作用已经发生了变化。在J2EE和Spring的早期,应用程序是为了部署到应
用服务器上而创建的。今天,在Spring
Boot的帮助下,应用程序是以一种对开发者和云计算友好的方式创建的,Servlet容器是嵌入式的
,并且易于改变。从Spring框架5开始,WebFlux应用程序甚至不直接使用Servlet
API,可以在非Servlet容器的服务器(如Netty)上运行。
Spring不断创新,不断发展。除了Spring框架,还有其他项目,如Spring Boot、Spring
Security、Spring Data、Spring Cloud、Spring
Batch等。重要的是要记住,每个项目都有自己的源代码库、issue tracker 和发布节奏。参见
spring.io/projects,了解Spring项目的完整列表。