前瞻:Spring 6.0将停止支持Freemarker和JSP
Spring Framework 6.0 第一个里程碑版本已经发布,目前已经可以从 Spring Repo 获取。这里有一些新变更我们可以提前了解一下。
甲骨文已经把 Java EE 捐献给 Eclipse 基金会数年了。 Java EE 的名称也变更为了 Jarkarta EE ,包名也相应地从 javax 变更为 jakarta 。例如 javax.persistence 现在对应为 jakarta.persistence 。
在本次里程碑版本中涉及到的两个核心容器规范 JSR-250 和 JSR-330 的包名都会迁移到 Jakarta EE 。
Jakarta EE 的持久层规范也将在此次里程碑版本中完成迁移。这意味着 javax.persistence 和 jakarta.validation 都将实装。对应 Hibernate ORM 5.6.x 和 Hibernate Validator 7.0.x 。
由于 Jakarta EE 的合并迁移, Servlet 中间件也要进行升级。 Tomcat 10 , Jetty 11 , 或者基于 undertow-servlet-jakarta 的 Undertow 2.2.14 是目前里程碑版本的基准线。
一些过时的基于 Servlet 的组件已经在本次里程碑版本中移除。
现在 Spring MVC 和 Spring WebFlux 将不再将类上单独有 @RequestMapping 的 Spring Bean 视为控制器。在 6.0 之前默认情况以下代码是可以的:
6.0 之前相关基于 AOP 的代理机制将失效, 请为此类控制器启用基于类的代理 。
请求方法 HttpMethod 在 6.0 之前为Java枚举。
在 6.0 以后改为Java类:
在2022年的1月份 Spring Framework 6.0 的第二个里程碑和对应的Spring Boot 3.0第一个里程碑将和大家见面。