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 中直接每一行是一个自动配置类:
编写格式确实是比之前方便多了,但文件名确实也太长了,比较难记。。。
需要注意的是:
为了向后兼容,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 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.6 及以上的版本了,并且,Spring Boot 2.6.0 在今年 11/24 也会停止维护。。
总结
Spring Boot 2.7.0 新增了不少新特性,变化真的还挺大的,特别是自动配置的变更,有明显调整,大家要特别注意。
Spring Boot 现在已经成为了实事上的脚手架框架了,让学习和开发变得更简单,同时这版本的淘汰节奏也让我感觉技术更新实在太快了,所以我们也要不断保持学习,不然也会跟着淘汰。
相关推荐
《Spring Boot 2.7.0 源码解析与深度探索》 Spring Boot作为Java开发中的一个核心框架,以其便捷的起步配置、自动化配置和一站式的解决方案深受开发者喜爱。当我们深入研究Spring Boot 2.7.0的源码时,可以更深刻地...
Spring Boot 2.7.0是该框架的一个版本,包含了众多改进和新特性。 源码分析: 1. **起步依赖(Starter Dependencies)**: Spring Boot的核心特性之一是起步依赖,这些是Maven或Gradle的模块,包含了一组预定义的...
本项目是基于Spring Boot v2.7.0 开发的智慧物业管理系统前端Web 本软件采用的前端技术栈为:Vue.js、element-ui、axios、echarts等,后端技术栈为:Spring Boot、Redis、Mybatis-Plus、Druid、Hutool、Swagger2、...
spring-boot 2.7.10 jar包
本教程将详细讲解如何使用Spring Boot 2.7.0和MyBatis框架搭建多数据源配置,以实现灵活的数据管理。 首先,我们需要了解Spring Boot的核心特性,它是一个基于Spring框架的微服务开发工具,简化了配置并提供了自动...
Spring Boot应用开发框架项目旨在简化创建产品级的Spring应用和服务。你可通过它来选择不同的Spring平台。可创建独立的Java应用和Web应用,同时提供了命令行工具来允许'spring scripts'。Spring Boot应用开发框架...
### 基于Spring Boot架构项目开发 #### Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目标是简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式(习惯优于配置)来配置Spring...
spring-boot-starter-test-1.0.2.RELEASE.jar 各个版本,免费下载 spring-boot-starter-test-RELEASE.jar 各个版本,免费下载 spring-boot-starter-test.jar 各个版本,免费下载 如果不能免费下载,关注我,评论区...
本项目是基于Spring Boot v2.7.0 开发的智慧物业管理系统 前端技术栈为:Vue.js、element-ui、axios、echarts 后端技术栈为:Spring Boot、Redis、Mybatis-Plus、Druid、Hutool、Swagger2、knife4j、fastjson、...
- 基于 Spring Cloud 2021 、Spring ...| Spring Boot | 2.7.0 | | Spring Cloud | 2021.0.3 | | Spring Cloud Alibaba | 2021.0.1.0 | | Spring Authorization Server | 0.3.0 | | Mybatis Plus | 3.5.2 | | hutool
java运行依赖jar包
swagger2-spring-boot-starter Spring boot starter for swagger2 使用版本 Spring Boot 1.5.6-RELEASE Springfox Swagger 2.7.0 使用说明 <groupId>com.k4hub</groupId> <artifactId>swagger2-spring-boot-...
在Spring Boot中使用swagger-bootstrap-ui的方法 Spring Boot是一款流行的Java框架,用于构建Web应用程序。swagger是一个流行的API文档生成工具,能够自动生成API文档。swagger-bootstrap-ui是基于swagger的UI组件...
- **版本迭代快**:Spring Boot 的版本迭代速度较快,可能需要频繁更新。 #### 六、Spring Boot 全局配置 **自定义 Banner**: 1. **创建 banner.txt 文件**:在项目的 `resources` 目录下创建。 2. **设计 Banner...
dubbo-v2.7.x Dubbo-2.7.0 + Spring Boot dubbo-sca Dubbo-2.7.6 + Spring Boot.2.0.x + Spring Cloud.F nacos nacos-spring-boot-example Nacos + Spring Boot 简单入门 nacos-spring-cloud-example Nacos + ...
基于Springboot2.7.0 + Vue2 开发的影院购票系统 本地运行 MySQL版本为8.0.27,npm版本为8.19.4,node版本为v16.20.0 SQL 文件位于SQL目录下的cinema.sql,将其中的数据导入到自己本地数据库中 修改后端配置文件中的...
Spring Boot整合Swagger2是为了在开发过程中提供便捷的API管理和测试工具。Swagger2是一个流行的API框架,它基于OpenAPI规范,帮助开发者设计、构建、记录和使用RESTful APIs。本文将详细介绍如何将Swagger2与Spring...
Spring Boot 2.7.0 及以上版本弃用了部分 Spring Security 的配置类,使得向更高版本升级变得复杂。本文将介绍如何从 Spring Security OAuth 2.3 或 2.5 迁移到 SAS,特别是针对 PIG 微服务开发平台的迁移步骤。 ...
Spring Boot 2.1.5 RELEASE Spring MVC ORM:MyBatis 数据库:MySQL 5.7 分布式缓存:Redis 本地缓存:Caffeine 消息队列:Kafka 2.13-2.7.0 搜索引擎:Elasticsearch 6.4.3 安全:Spring Security 邮件任务:Spring...
<artifactId>druid-spring-boot-starter <version>1.1.10 <groupId>commons-dbcp <artifactId>commons-dbcp2 <version>2.7.0 <groupId>org.apache.commons <artifactId>commons-dbutils <version>...