SpringOne 2022第1个议题《Introducing Spring Framework 6》,主要介绍了Spring Framework6的关键特性以及里程碑,演讲者:Juergen Hoeller。
1.版本里程碑
2个GA版本
2022-11,发布
Spring Framework 6.0 GA
Spring Framework 6.0 GA
配套Java 17/18/19
- 匹配
Spring Boot 3.0&3.1
2023-07,发布
Spring Framework 6.1 GA
Spring Framework 6.1 GA
配套Java 17/18/19/20/21
- 匹配
Spring Boot 3.2&3.3
详细日程表
6.x
vs 5.3.x
Spring Framework 5.3.x | Spring Framework 6.x | |
---|---|---|
Java版本 | Java 8/11/17 | Java 17+ |
Java EE版本 | Java EE 7/8 (javax namespace) | Jakarta EE 9/10 (jakarta namespace) |
命令式编程模型 和响应式编程模型 | 新增 | 继承 |
配套Spring Boot | Spring Boot 2.7.x | Spring Boot 3.x |
AOT (Ahead-Of-Time) | - | 新增 |
虚拟线程 | - | 新增(基于Loom) |
2.Java对Spring Framework的影响
如下列举了对Spring Framework
产生影响的Java 17新特性
:
- 语言层:text blocks、switch改进
- 类型系统:records、sealed classes
- 代码组织形式:module introspection、module path scanning
- 标准库:集合的工厂方法(
collection factory methods
)- 如:
List<Integer> list = List.of();
- 参考:https://stackoverflow.com/questions/43533835/java-9-what-are-collection-factory-methods
- 如:
3.Java EE对Spring Framework的影响
从Java EE 8
到Jakarta EE 9
的升级,也会对Spring Framework
产生影响:
Servlet API 5.0
:javax.servlet
变为jakarta.servlet
- 基于
Servlet API 5.0/6.0
的Web容器:Tomcat 10.0/10.1
Jetty 11/12
Undertow 2.3
- 基于
JPA 3.0
:javax.persistence
变为jakarta.persistence
- 基于
JPA 3.0/3.1
的ORM
及Validator
:Hibernate ORM 6.1
Hibernate Validator 7.0/8.0
- 基于
4.AOT对Spring Framework的影响
伴随Java17
对AOT
的关注和支持,Spring Framework也增加了对AOT
的支持。
Java对AOT
的支持有两种技术路线:
GraalVM
:编译期直接将Java源码变成可执行二进制(native executables
)CRaC
:保存JVM的Checkpoint,进而支持针对Checkpoint的还原(Coordinated Restore at Checkpoint
)OpenJDK
启动了名为CRaC
的项目- 参考:https://wiki.openjdk.org/display/crac
5.虚拟线程对Spring Framework的影响
随着虚拟线程
作为Java19
的预览特性,Spring Framework也进行了支持,但Juergen Hoeller
对虚拟线程
的阐述比较辩证:
- 不要盲目迷信
虚拟线程
,需要在合适的场景下使用,演讲中举了两类适用的场景:- 如:基于IO流的Servlet
- 如:@Scheduler管理的消息型系统
- 不适用的场景:纯CPU计算型的业务逻辑(
purely CPU-bound handlers
)
6.总结
Spring Framework
作为一个底层框架,它的输入往往来自于Java语言规范、Java EE标准。- Spring团队规划的新特性非常紧贴Java新版本/新特性,即便这个新特性仅仅是
Preview Feature
。 - 深刻理解Java新版本/新特性,有助于理解
Spring Framework
的新特性以及它的市场规划。