传统写法
文章插图
新写法
文章插图
5.2.2、Text Blocks 文本块
参考: https://openjdk.org/jeps/378
通过编写 """ , 来减少转义字符和换行符,达到简化代码和提高代码可读性的目的
文章插图
5.2.3、Record 类型
参考: https://openjdk.org/jeps/395
record 是 JDK 14 引入的关键字,用于声明不可变的数据类 。它适用于存储纯粹的值类型数据,如接口传输数据、坐标点和只读的日志记录 。与 lombok 相比,record 简化了定义纯粹数据类型的过程 。由于 record 类是不可变的 , 成员变量只能设置一次且无法更改,无需提供显式的 setter () 方法 。
1、定义 Point 类,使用关键字 record , 未定义 get/set
文章插图
2、查看编译后的字节码文件
文章插图
文章插图
3、使用 Point 类
文章插图
5.2.4、instanceof 的模式匹配升级
- instanceof 类型判断再也不需要强制转换
文章插图
5.2.5、密封的类和接口
参考: https://openjdk.org/jeps/409
JDK15 开始,引入了 sealed 普通类或接口类,这些类只允许被指定的类或者 interface 进行扩展和实现 。
使用修饰符 sealed,您可以将一个类声明为密封类 。密封的类使用关键字 permits 列出可以直接扩展它的类 。子类可以是最终的,非密封的或密封的
比较实用的一个特性 , 可以用来限制类的层次结构
文章插图
5.2.6、其他优化和升级
感兴趣的同学,推荐阅读 OpenJDK 官方文档说明,从 JDK11 到 JDK17 的改动: https://openjdk.org/projects/jdk/17/jeps-since-jdk-11
6、升级步骤6.1、JDK 选择
OpenJDK17 下载:https://jdk.java.NET/archive/
行云镜像:jdt-base-Tomcat/java-jdt-centos7.4-openjdk-17.0.2-tomcat8.0.53
6.2、pom 编译配置升级
maven 编译所需 JDK 升级至 17
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
6.3、SpringBoot 升级
SpringBoot 版本升级到 2.7.15,Spring 版本升级为 5.3.29
为什么不升级到 SpringBoot3?
Spring Boot 3.0 最低要求 Java 17,SpringBoot3.0 带来了很多变化 , 和 SpringBoot2 差异较大 。考虑到公司很多中间件都是基于 SpringBoot2 构建的,所以此处推荐升级到 SpringBoot2 的最高版本 2.7.15 。
POM 升级
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.15</version>
</parent>
也可以通过设置 dependencyManagement 的方式:
<properties>
<!-- 框架版本配置-->
<springboot-version>2.7.15</springboot-version>
<springframework.version>5.3.29</springframework.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${springboot-version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${springframework.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
参考:
spring 升级指南: https://Github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions
springboot 版本官网: https://spring.io/projects/spring-boot#learn
循环依赖问题
SpringBoot 升级到 2.7.15 后,如果应用中存在循环依赖的问题,启动时会报如下错误:
推荐阅读
- 曾志伟为缅北电诈家族成员庆生风波升级!知情人曝其情况危险
- 苹果11升级ios16后续有电量百分比
- 恭喜!72岁TVB知名老戏骨疑升级当爸爸,小36岁女友被曝怀孕
- 杨幂马面裙风波升级!吃饺子、喝豆汁营销自己弘扬中华文化引众怒
- 杨幂799元马面裙风波升级!被嘲爱蹭又外行,模特上身效果太打脸
- 绯闻再次升级小三实锤这一次,36岁的江疏影再次被提到
- 《歌手2024》确定回归,8位首发歌手,每周直播,升级为国际版
- “包养门”事件再升级!屋里藏着两个大学生却说是自己“干儿子”
- 刘涛私生女事件升级!孩子更多细节被曝,生父疑似是富商
- TVB知名小生疑升级当爸!日籍妻子现身腹部凸起,网民称孕味足