文
如果把2014年发布1.0版比作Spring团队的再次创业,发布后火爆程度可谓风靡全球。到2018年发布2.0版本,已经完全没有对手了。今年刚发布的3.0版本直接上Java 17以及Jakarta EE 9起步,可谓站稳脚跟后的引领风骚。
what’s new(新特性)
老规矩,将我们关心的功能爽一遍。
最低版本要求
Spring Boot 3.0.0对外部依赖有最低版本要求:
- JDK 17
- Graal 22.3
- Native Build Tools Plugin 0.9.17
- Spring Framework 6
借助Micrometer大大提升可观测性
据说,Spring Boot内部有专门一个“团队”来做应用的可观性,本次的借助的升级,使得可观测这件事在Spring Framework 6和Spring Boot 3.0.0内部都变得更加简单、易用!通过可观测性,能更好的了解系统内部的运行状态,做到胸有成竹。
Micrometer 1.10中引入的新的,它使得一个API就能搞定:metrics、tracing、logging指标观测,并且还能传递上下文、传播元数据等等,对使用者非常友好。
这个API的设计是降低使用门槛,希望用户使用单一API,就能从中获取到多种信息:metrics、tracing、logging
笔者窥探了一下Spring Boot针对Micrometer源代码级别的变化,觉得值得用专题来做较为完整的表述,结合自己的一些使用经验,尽量去说清楚在项目中如何使用它来方便的观测你的Application。
Log4j2增强
一句话:配置性更灵活、和Spring环境整合得更好了。
PS:一般情况下使用默认的logback即可。倘若你不是典型的高并发场景,不建议折腾Log4j2
spring-web URL的匹配规则有变化
声明:这项特性更改和Spring Boot无关,属于Spring Framework 6的变更。
包含Spring MVC和WebFlux在内的URL 尾部斜杠 匹配方式,本次有调整:可参见类
Spring Boot此举,笔者觉得目的就想将自动配置文件的配置,和其它SPI配置分离(顺便做做简化),仅此而已
@ConstructingBinding不能再标注在类上
从源代码的角度看,改注解已经不能再被标注在类上了(编译不通过):
通过将属性文件加载进容器:
文件结构如下:
在Spring Boot 2.7.x里运行结果为: 错
说白了不是Spring Boot 3.0.0部分支持,而是使用者对属性类Bean的使用姿势不对:这从Spring Boot 3.0.0的 错提示能看出端倪,明显比2.7.x版本的 错指向性更好,明确告诉了你原因依旧修复方式。
值得一提的是,如果编码时这么使用,连IntelliJ IDEA都不同意:非常明显的指出了问题所在:
程序启动期间,不再查找主机名
2.7.x版本:启动日志包含主机名
不再使用JDK的SecurityManager
Java 17中,SecurityManager遭到弃用。同理,最低要求Java 17的Spring Boot 3.0.0也无理由再使用它了。
以Spring Boot的类举例:上下对比可看出区别
PS:有兴趣的同学可以看看ImageBanner的实现,很高级且很复杂,当然也很耗时。看完就明白这个版本为啥要干掉它了~
JMX默认也只暴露Health端点了
从Spring Boot 2.7开始,web端点默认只暴露health,这次JMX也来跟着保持一致了。
如若需要显示控制其它端点,你可通过和属性来自定义控制。
Actuator内置端点的返回JSON序列化统一使用ObjectMapper
在直线版本中,端点返回的序列化方式和MVC接口的并不一致,因此可能出现一些怪异现象。现在好了:所有端点的返回值序列化,统一使用来完成。
这个标准是通过:统一实现接口实现的。
- ->
- 注解迁移到包了(之前版本在外层)
- 从这点能看出框架对职责边界的强要求,日常点滴才能确保长久的不腐化
- 2013.07 清考、毕业答辩3次未通过、延期毕业
- 2013.08-2014.07 宁夏中介公司卖二手房1年,毕业后第1份工作
- 2014.07-2015.05 荆州/武汉,泰康人寿卖保险3月、饿了么送外卖2月,还有炸鸡排、直销等第2345份工作
- 2015.08 开始从事Java开发,闯过外包,呆过大厂!擅长抽象思维,任基础架构团队负责人
- 2021.08 因“双减政策”失业!历经9面,终获美团外卖L8的offer
- ava架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
- 高质量代码、规范践行者;DDD领域驱动深度实践;即将出版书籍
我是YourBatman:前25年不会写Hallo World、早已毕业的大龄程序员。高中时期《梦幻西游》骨灰玩家, 瘾失足、清考、延期毕业、房产中介、保险销售、送外卖…是我不可抹灭的黑标签

序 | 专栏名称 | 简介 |
---|---|---|
01 | [YourBatman]-程序人生 | 程序人生,人生程序 |
02 | [YourBatman]-资讯/新特性 | IDEA、JDK、Spring技术栈…新特性 |
03 | [YourBatman]-IntelliJ IDEA | 熟练使用IDEA就相当拥有物理外挂,助你高效编码 |
04 | [YourBatman]-Bean Validation | 熟练掌握数据校验,减少90%的垃圾代码 |
05 | [YourBatman]-日期时间 | 帮你解决JDK Date、JSR 310日期/其实 的一切问题 |
06 | [YourBatman]-Spring类型转换 | Spring类型转换-框架设计的基石 |
07 | [YourBatman]-Spring static | static关键字在Spring里的应用 |
08 | [YourBatman]-Cors跨域 | 关于跨域请求问题,本专栏足矣 |
09 | [YourBatman]-Jackson | Almost Maybe是最好的Jackson专栏 |
10 | [YourBatman]-Spring配置类 | 专讲@Configuration配置类,你懂的 |
11 |
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
[附源码]计算机毕业设计点餐系统Springboot程序
上一篇
2022年11月10日
计算机 络期末复习
下一篇
2022年11月10日
|