springboot2稳定版本_Spring Boot 2.4 正式发布,重大调整
大家周末愉快啊,Spring Boot 2.3.5 没发布几天,你看,还是 1 周前发布的:
昨天又有粉丝留言说 Spring Boot 2.4.0 已经发布了:
我了个去,栈长赶紧跑到 Spring Boot 官网看了下,果然 2.4.0 了,我顿时傻眼了,又得写文章了,看来我消息还是稍微有点滞后了…
Spring Boot 2.4.0 这么快就发布了,又是周末来给大家推送,我印象中都是周末推……
Spring Boot 更新也太快了,很多同学表示学不来了,学不动了。学不动也要学啊,不然就要被淘汰了,Java技术栈所有 Spring Boot 教程和示例源码都上传到 Github 了,欢迎 Star:
https://github.com/javastacks/spring-boot-best-practice
好吧,还是例行公事,接下来栈长带大家来解读下 Spring Boot 2.4.0 到底更新了什么鬼?
切记!!!
这个版本不要轻易升级!!!
下面注意仔细看完哦。。。
一、支持 Java 15
Spring Boot 2.4.0 支持 Java 15 了,同时向下兼容 Java 11 和 Java 8。
二、依赖升级
Spring Boot 2.4.0 升级了一些主要的 Spring 项目:
- Spring AMQP 2.3
- Spring Batch 4.3
- Spring Data 2020.0
- Spring Framework 5.3
- Spring HATEOAS 1.2
- Spring Integration 5.4
- Spring Kafka 2.6
- Spring Retry 1.3
- Spring Security 5.4
- Spring Session 2020.0
另外,还尽可能升级了一些第三方库到最新稳定版本:
- Artemis 2.13
- AssertJ 3.18
- Cassandra Driver 4.7
- Elasticsearch 7.9
- Flyway 7
- Jersey 2.31
- JUnit 5.7
- Liquibase 3.10
- Lettuce 6.0
- Micrometer 1.6
- Mockito 3.4
- MongoDB 4.1
- Oracle Database 19.7
- Reactor 2020.0
- RSocket 1.1
- Undertow 2.2
- ……
三、配置改进
1、改进配置文件的处理方式
Spring Boot 2.4 改进了处理 application.properties 和 application.yml 配置文件的方式。更新后的逻辑旨在简化和合理化外部配置的加载方式,但有些参数的组合形式却得到了限制,升级请谨慎。
如果你的应用工程只有一个简单的 application.properties 或 application.yml 文件,则可以进行无缝升级到 Spring Boot 2.4.0。
但是,如果你的配置较为复杂,比如说有指定 profile 的参数,或者有基于 profile 激活的参数,要使用新功能就需要进行一些更改。
更多细节可参考:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Config-Data-Migration-Guide
如果你想继续使用 Spring Boot 2.3 的配置逻辑,也可以通过在 application.properties 或者 application.yml 配置文件中添加以下参数:
spring.config.use-legacy-processing = true
2、导入配置参数改进
通过配置参数 spring.config.location 和 spring.config.import 来指定或者导入配置文件时,如果配置文件不存在,现在不是只能默默地失败了,可以通过添加 optional: 前缀来标识它是可选的。
比如我们从 /etc/config/application.properties 指定配置文件,如果这个文件不存在,系统就会跳过它。
spring.config.location=optional:/etc/config/application.properties
如果你想将所有指定的配置文件都默认为可选的,可以通过 SpringApplication.setDefaultProperties(…) 来设置
spring.config.on-location-not-found=ignore 这个参数,或者将它设置在系统环境变量中。
3、支持导入配置树
新版本的 spring.config.import 属性还可以用于导入配置树,通过与 Kubernetes 一起使用,配置树是提供键/值对的另一种方法,每一个键值/对都在其自己的文件中声明,文件名是键,文件内容就是值。
另外,从配置树导入的参数默认会带一个换行符。
详细的参考:
https://docs.spring.io/spring-boot/docs/2.4.0/reference/html/spring-boot-features.html#boot-features-external-config-files-configtree
具体的配置上的细节暂时没有时间详细研究了,后面有机会再详细介绍一篇,关注Java技术栈第一时间推送。
四、新增启动端点
Spring Boot 2.4.0 添加了一个新的启动端点,用来显示应用启动有关的详细信息,比如可以帮助我们来诊断启动时间比预期更长的 Spring Beans。
这个功能建立在 Spring Framwork 5.3 最近添加的应用程序启动跟踪特性的基础上,感兴趣的可以在 Spring 框架文档中阅读有关该功能的更多信息。
https://docs.spring.io/spring-framework/docs/5.3.x/reference/html/core.html#context-functionality-startup
五、新增起源链(Origin Chains)
Origin 接口更新了,使用了全新的 getParent() 方法,这样就可以提供完整的参数起源链,以准确显示某一项参数的来源。
比如你在 application.properties 配置文件中使用 spring.config.import 来导入第二个配置文件的参数,从第二个配置文件加载的参数的 Origin 将具有一个指向原始导入声明的父级。
说白了就是可以看到参数从哪里导进来的,可以通过 actuator/env 或者 actuator/configprops 端点来查看与之相关的输出信息,这里暂不详细研究了,后面有机会再详细介绍一篇,关注Java技术栈第一时间推送。
六、Docker 支持升级
1、镜像发布
Spring Boot Maven 插件的 spring-boot:build-image 指令和 Gradle 插件的 bootBuildImage 任务现在可以直接发布 Docker 镜像到 Docker 注册中心了。
2、授权机制
当使用 Spring Boot 构建时,可以为构建器或者运行镜像使用私有授权的 Docker 私有注册中心,支持用户名/密码认证以及基于 Token 机制认证。
更多详细的配置可以参考对应的插件文档:
Maven:
https://docs.spring.io/spring-boot/docs/2.4.0/maven-plugin/reference/htmlsingle/#build-image-example-publish
Gradle:
https://docs.spring.io/spring-boot/docs/2.4.0/gradle-plugin/reference/htmlsingle/#build-image-example-publish
七、移除了 JUnit 5’s Vintage 引擎
Spring Boot 2.4.0 从 spring-boot-starter-test 中移除了 JUnit 5 Vintage 引擎,JUnit 5 可以通过 vintage 引擎来运行 JUnit 4 编写的测试用例,说白了就是兼容 JUnit 4 呗。
如果你不想迁移测试用例到 JUnit 5 而继续使用 JUnit 4,添加以下 Maven 依赖即可:
org.junit.vintage junit-vintage-engine testorg.hamcrest hamcrest-core
以下为对应的 Gradle 配置:
testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core"}
八、其他更新
Spring Boot 2.4.0 发布更新说明中还包括了许多其他的更新和改进,比如说在 Spring Boot 2.4.0 中标识了在下个版本中计划废弃的不推荐使用的类和方法等。
以上就是 Spring Boot 2.4.0 的主要变更内容,当然还有许多发布细节,感兴趣的可以研究下这个更新说明:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.4-Release-Notes
总结
终于写完了,又肝了一个晚上!!
可以看出 Spring Boot 2.4.0 的变更还是蛮大的,特别是在配置文件、配置参数的处理,还有许多框架的重大版本升级。
切记不要轻易升级到这个版本,如需升级,最好是详细看清楚变更内容,做好充分测试,以免年终奖没了。。
关于更多的细节暂时没时间深入研究了,后续栈长有时间再深入研究下,给大家带来更详细的技术文章,点击最下面的了解更多链接关注Java技术栈第一时间推送。
最后,大家觉得本文有用的话,动动小手,给栈长来个小小的在赞、转发呗,原创不易,需要你的鼓励哦~
版权申明:本文系 “Java技术栈” 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重他人劳动成果和知识产权。
springboot2稳定版本_Spring Boot 2.4 正式发布,重大调整相关推荐
- springboot2稳定版本_重要版本Spring Boot 2.3.0发布 - spring.io
重要版本Spring Boot 2.3.0于2020年5月15日发布,此版本增加了大量新功能和改进.有关完整的升级说明以及新的和值得注意的功能,请参阅发行说明. 2.3的新功能 依赖升级 Spring ...
- hibernate版本_Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)
在本文中,主要内容包括什么是Spring Boot,优点,主要功能以及使用Spring Boot创建一个简单的应用程序. Spring Boot是什么? Spring Boot是对Spring F ...
- springboot2稳定版本_SpringBoot2.2.x 版本CPU增高BUG分析|chu
一.发现问题 项目在上线之后,运行24小时之后CPU突然增高,导致不得不重启机器. 二.分析及定位问题 项目在上线前是经过压力测试,刚开始定位是QPS过大,通过增加机器.但结果并不是特别理想,始终会有 ...
- opencv4版本和3版本_Spring Boot 太狠了,一口气发布了 3 个版本!
Spring Boot 这么狠的么,每次连发三个版本,Spring Boot 比 Java 还要版本帝啊. 老铁们,栈长我都学不过来了啊. 这三个版本分别是:2.3.4, 2.2.10, 2.1.17 ...
- springboot2稳定版本_springboot 最新稳定版
1.springboot 核心依赖最新版本: Spring Boot 2.3.3 Spring Cloud Hoxton.SR8 Spring Cloud Alibaba 2.2.2 MybatisP ...
- NodeJS V18稳定版本正式发布,这个特性太棒了
前几天,Node.js v18作为当前的稳定版本发布了.我们归纳了 v18 的一些更新. 全局 fetch Node.js在--试验性-fetch后有了一个全局fetch,它允许你在Node.js中原 ...
- Spring Boot 2.0 正式发布
转载自 重磅:Spring Boot 2.0 正式发布! Spring Boot 2.0 正式发布! 2018/03/01最新消息,传得沸沸扬扬的Spring Boot 2.0 正式发布了. 小编去看 ...
- python3最新稳定版本-python3稳定版
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 美国时间6月27日晚8点,python 3. 7. 0 经过多轮测试,终 ...
- Apache Beam发布第一个稳定版本
Apache Beam在官方博客上正式发布了Beam 2.0.0.这是Beam有史以来的第一个稳定版本,根据Beam社区的声明,Beam意欲为未来版本发布保持API的稳定性,并让Beam适用于企业的部 ...
最新文章
- js实现UTC时间转为北京时间,时间戳转为时间
- 使用github管理Eclipse分布式项目开发
- 信息系统项目管理师优秀论文:项目沟通管理202111
- 《C语言开发从入门到精通》一2.4 技术解惑
- KAFKA 最新版 Shell API单机生产与消费
- Android camera (12)---camera ap在特殊的应用场景下额外使用一套独立的camera tuning参数
- 百万级MySQL的数据量,该如何快速的完成数据迁移?
- Emacs学习笔记(二)
- Python实现键盘操作方法
- 全面拆解携程云原生实践,打造智能弹性的云端酒店直连系统!
- 红警3命令与征服注册激活启动cdkey联机问题
- python实训报告万能模板_实训报告万能模板1000字
- php生成数字订单号,php生成订单号函数
- B站成长期UP主有哪些涨粉机会?
- 分布式事务二 基础理论
- IDA详细使用教程,适合逆向新手的实验报告
- 什么是BSP? 概念解析
- (五)Richardson 迭代法
- ionic 中tab切换时出现一闪而过白屏
- C1-2_求长方体体积
热门文章
- 如何查看linux系统是32位还是64位
- intel 汇编中断解释
- Ubuntu环境搭建系列—JavaEE篇
- 孩子从小要学编程吗?
- C++语言程序设计视频教程_清华大学_郑莉(基础篇+进阶篇)
- lvs的调度算法有几种_LVS:三种负载均衡方式比较
- 远程连接oracle01017,连接Oracle远程数据库错误:ORA-12541,ORA-12514,ORA-01017的解决方法!...
- 向日葵win10远程linux主机,大神为你细说win10系统使用向日葵远程桌面软件远程的操作办法...
- JavaWeb上传图片到服务器,存储到数据库,并在页面显示
- ArrayList和LinkedList的索引问题