我们根据Dubbo 兼容适配Spring 6 & Spring Boot 3 过程中总结的经验整理如下,其他组件维护者也可以参考以下经验进行适配或者升级,更早适配升级到最新版本:
Jakarta EE
Jakarta EE 9 将所有API包名从javax.*命名空间变更到了jakarta.*。而造成这一变化的原因是Oracle拒绝交出相关权益,详情可以查看:https://www.oschina.net/news/106465/oracle-killed-java-ee。
因为Jakarta EE 的迁移,对于Web Apps,确保升级使用Tomcat 10, Jetty 11, or Undertow 2.2.19。
以下列出了一系列工具可以帮助你完成这部分的迁移:
Spring 6 介绍了@HttpExchange 注解,基于@HttpExchange注解可以简化HTTP远程调用。
增强Spring SPI 加载器 SpringFactoriesLoader 允许加载多自定义文件
Spring 6 之前,SpringFactoriesLoader 只允许加载"META-INF/spring.factories"文件内容。
Spring 6 之后,SpringFactoriesLoader 可以加载自定义文件或文件名文件,并且可以通过链式编程加载多个文件。
早期兼容JDK19预览版的虚拟线程(virtual threads)