0
点赞
收藏
分享

微信扫一扫

Spring Boot 2.7.0 更新说明

杏花疏影1 2022-05-20 阅读 96

Spring Boot 又接连发布了三个版本:

  • Spring Boot 2.7.0(最新)
  • Spring Boot 2.6.8
  • Spring Boot 2.5.14

后面两个版本都是修复 bug 版本,2.7.0 才是硬菜,毕竟等了大半年。。

老规矩,栈长重点来解读下 Spring Boot 2.7.0 都更新了什么鬼!

Spring Boot 2.7 新特性

自动配置变更(重要)

自动配置注册文件

自动配置注册有了一个比较大的调整,之前都是写在下面 文件中的:

META-INF/spring.factories

现在改名了:

META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Spring Boot 2.7.0 更新说明_商业

另外格式也变了,Spring Boot 2.7 中直接每一行是一个自动配置类:

Spring Boot 2.7.0 更新说明_java_02

编写格式确实是比之前方便多了,但文件名确实也太长了,比较难记。。。

需要注意的是:

为了向后兼容,META-INF/spring.factories 虽然现在被标识废弃了,但现在仍然可以使用,后续可能被彻底删除,建议使用新的规范。

java 项目 fhadmin.cn

新注解(@AutoConfiguration)

新增了一个自动配置注解 ​​@AutoConfiguration​​,用来代替之前的 ​​@Configuration​​,用于标识新自动配置注册文件中的顶级自动配置类,由 ​​@AutoConfiguration​​ 注解嵌套、导入进来的其他配置类可以继续使用 ​​@Configuration​​ 注解。

另外,为方便起见,​​@AutoConfiguration​​ 注解还支持 ​​after​​, ​​afterNames​​, ​​before​​ 和 ​​beforeNames​​ 属性进行自动配置排序,用于代替之前的 ​​@AutoConfigureAfter​​ 和 ​​@AutoConfigureBefore​​ 注解。

这个注解可以说更加细分了吧,自动配置专用注解,用专门的注解来干专门的事,这样也可以用来区分用 ​​@Configuration​​ 标识的普通配置类。

支持 GraphQL

GraphQL = Graph + QL(Query Language),它是一种用于 API 的基于图表化的查询语言:

Spring Boot 2.7.0 更新说明_spring_03

Spring for GraphQL(1.0) 如今正式发布了,Spring Boot 2.7.0 也集成了对 GraphQL 的自动配置、指标支持等,Starter 名为:​​spring-boot-starter-graphql​​,Spring 大家族又新增一员。

支持 Podman

Podman 和 Docker 一样,是现在比较火热的容器引擎。

现在使用 Cloud Native Buildpacks 构建映像时,Maven 和 Gradle 插件就可以使用 Podman 容器引擎进行构建了,可用来代替 Docker 容器引擎。

牛逼啊,Podman 现在被 Spring Boot 官方支持了。

支持 RabbitStreamTemplate

现在支持自动配置 RabbitStreamTemplate,只需要配置以下参数:

spring.rabbitmq.stream.name = xxx

同时还新增了一个 ​​RabbitStreamTemplateConfigurer​​ 配置类来进行自定义扩展其他实例。

支持 Hazelcast

Hazelcast 和 Redis 一样,它是一款开源的分布式内存数据库,可用作分布式缓存。

Hazelcast 自动配置嵌入式服务器现在默认使用了 ​​SpringManagerContext​​,可以在 Hazelcast 实例对象中注入 Spring Bean 了。另外,还引入了 ​​HazelcastConfigCustomizer​​ 回调接口,可用于进一步调整 Hazelcast 服务器配置。

支持 Cache2k

Cache2k 是一个开源的轻量级、高性能 Java 内存缓存库。

现在添加了 ​​Cache2k​​ 的依赖项管理和自动配置,也可以通过定义一个 ​​Cache2kBuilderCustomizer ​​ 实例 Bean 来自定义默认缓存设置。

Web Server SSL 增强

嵌入式 Web 服务器 SSL 配置增强了,可以配置带有 PEM 编码证书和私钥文件的 SSL。

使用以下参数进行配置:

  • server.ssl.certificate
  • server.ssl.certificate-private-key
  • server.ssl.trust-certificate(可选)
  • server.ssl.trust-certificate-private-key(可选)

另外,也可以使用类似的 ​​management.server.ssl.*​​ 属性来保护管理端点。

info 端点增强

操作系统信息

现在 ​​/info​​ 端点支持暴露应用程序运行时的一些操作系统信息:

{
"os": {
"name": "Linux",
"version": "5.4.0-1051-gke",
"arch": "amd64"
}
}

不过默认是禁用的,有需要的可以手动开启:

management.info.os.enabled = true

Java 供应商信息

现在 ​​/info​​ 端点中的 Java 供应商添加了供应商版本信息:

{
"java": {
"vendor": {
"name": "Eclipse Adoptium",
"version": "Temurin-17.0.1+12"
},
"..."
}

需要注意的是: 并非所有供应商都公开 ​​java.vendor.version​​ 系统属性,所以,获取版本属性时可能为空。

单元测试加强

新增了 ​​@DataCouchbaseTest​​ 和 ​​DataElasticsearchTest​​ 注解,可用于测试使用了 Spring Data Couchbase 和 Spring Data Elasticsearch 的应用程序。


最新支持版本

栈长整理了 Spring Boot 的最新版本支持情况:

版本

发布时间

停止维护时间

停止商业支持

2.7.0

2022-05-19

2023-05-18

2024-08-22

2.6.0

2021-12-17

2022-11-24

2024-02-24

2.5.x

2021-05-20

已停止

2023-08-24

2.4.x

2020-11-12

已停止

2023-02-23

2.3.x

2020-05-15

已停止

2022-08-20

2.2.x

2019-10-16

已停止

已停止

2.1.x

2018-10-10

已停止

已停止

2.0.x

2018-03-01

已停止

已停止

1.5.x

2017-01-30

已停止

已停止

大部分版本要么停止维护,或者仅提供商业支持,随着 2.7 的发布,现在连 Spring Boot 2.5 也停止维护了:

Spring Boot 2.7.0 更新说明_spring_04

能用的也就 Spring Boot 2.6 及以上的版本了,并且,Spring Boot 2.6.0 在今年 11/24 也会停止维护。。

总结

Spring Boot 2.7.0 新增了不少新特性,变化真的还挺大的,特别是自动配置的变更,有明显调整,大家要特别注意。

Spring Boot 现在已经成为了实事上的脚手架框架了,让学习和开发变得更简单,同时这版本的淘汰节奏也让我感觉技术更新实在太快了,所以我们也要不断保持学习,不然也会跟着淘汰。

举报

相关推荐

0 条评论