1. 放开标准库的模块访问限制
Jdk9模块后, 有些类访问, 需要通过如下配置打开访问权限
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.math=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
2. AppClassLoader父类不在是URLClassLoader
3. JDK17 String字符串内部字段变化
JDK8和JDK17两个版本的String类内部字段数量和类型有不兼容的变化,Dubbo中使用的protostuff需要对这里做特殊适配
4. 需要升级Springboot,
因为工程中原先使用的SpringBoot2.1版本无法解析JDK17的字节码, 启动会抛出异常, 项目中是升级后使用的是SpringBoot 2.7.11版本
SpringBoot高版本中禁止了循环依赖, 可以添加如下配置项打开, 示例中是放在Springboot的application.properties配置文件中
spring.main.allow-circular-references=true
5. 高版本SpringCloud关闭了自建ApplicationContext
SpringCloud关闭了自建Spring ApplicationContext, 可能改变一些基于SpringBoot扩展点实现的功能执行的优先级, 特别是自己业务上实现的扩展点,
实际上SpringCloud关闭自建ApplicationContext是合理的, 不然太混乱了, 实现扩展点时需要考虑很多问题.
spring.cloud.bootstrap.enabled=true #开启SpringCloud自建ApplicationContext
6. Mybatis 版本需要升级到3.5.x以上, 3.4.x无法运行
7. zookeeper客户端需要升级到3.5.x以上, 3.4.x版本无法运行
zookeeper-3.5.3-beta.jar 解决该问题