SpringBoot 2.6.0发布:禁止循环依赖,还有哪些实用的更新?
今日推荐
推荐 20 款 IDEA 主题!开源困境:Log4j2 维护者发声:没有工资,还要挨骂!!RedisJson 横空出世,性能碾压ES和Mongo!还在发愁写API文档?推荐一款阿里腾讯都在用的API管理神器!SpringBoot 参数校验/参数验证,常用方法都给你总结好了!
Spring Boot 2.6.0已经正式发布,快看看作了哪些升级。
1、禁止了循环依赖
循环依赖问题一直困扰大家,也是面试常问题目之一
Spring Boot 2.6.0之后,如果程序中存在循环依赖问题,启动上就会失败,报错:
┌─────┐
| a (field private com.zhiyin.TestB com.zhiyin.TestA.b)
↑ ↓
| b (field private com.zhiyin.TestA com.zhiyin.TestB.a)
└─────┘Action:Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
如果程序设计非常合理,完全避免了循环依赖,是最完美的。如果实在不能,Spring Boot也提供了折中解决办法,在报错信息中已经明示:
As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
需要我们在配置文件application.properties里加上这个属性:
spring.main.allow-circular-references = true
程序依然可以正常启动。
2、新增自定义脱敏规则
Spring Boot 2.6.0 支持/env端点和configprops配置属性的自定义脱敏,自定义SanitizingFunction类型的Bean即可实现,如下:
@Bean
public SanitizingFunction pwdSanitizingFunction() {return data -> {org.springframework.core.env.PropertySource<?> propertySource = data.getPropertySource();String key = data.getKey();// 仅对redis.properties里面的某些key做脱敏if (propertySource.getName().contains("redis.properties")) {if (key.equals("redis.pwd")) {return data.withValue(SANITIZED_VALUE);}}return data;};
}
对于部分数据脱敏,这个改进非常灵活,很有用。
3、Redis自动开启连接池
在2.6.0之前的版本,配置Redis时是否启用连接池是由使用者指定,2.6.0之后是默认开启,如果需要关闭,则需要配置:
spring.redis.jedis.pool.enabled = false
或者
spring.redis.lettuce.pool.enabled = false
说明Spring Boot支持大家使用Redis连接池。
4、支持使用WebTestClient来测试Spring MVC
开发人员可以使用 WebTestClient 在模拟环境中测试程序,只需要在Mock环境中使用 @AutoConfigureMockMvc
注释,就可以轻松注入 WebTestClient。,省去编写测试程序。
5、默认使用全新匹配策略
请求路径与 Spring MVC 处理映射匹配的默认策略已从AntPathMatcher更改为PathPatternParser。你可以设置spring.mvc.pathmatch.matching-strategy
为ant-path-matcher
来改变它。
2.6.0之前:
public static class Pathmatch {private MatchingStrategy matchingStrategy = MatchingStrategy.ANT_PATH_MATCHER;
}
2.6.0之后:
public static class Pathmatch {private MatchingStrategy matchingStrategy = MatchingStrategy.PATH_PATTERN_PARSER;
}
两者差异上:PathPattern去掉了Ant字样,但保持了很好的向下兼容性:除了不支持将**
写在path中间之外,其它的匹配规则从行为上均保持和AntPathMatcher一致,并且还新增了强大的{*pathVariable}
的支持。
6、增强了/info管理端点,加上了Java运行时信息
如下:
{"java": {"vendor": "BellSoft","version": "17","runtime": {"name": "OpenJDK Runtime Environment","version": "17+35-LTS"},"jvm": {"name": "OpenJDK 64-Bit Server VM","vendor": "BellSoft","version": "17+35-LTS"}}
}
7、其他变化
Servlet应用现在支持在Cookie中添加SameSite。
支持在主端口或管理端口上配置健康组。
在 Spring Boot 2.4 中弃用的类、方法和属性已在此版本中删除。
支持 Log4j2 复合配置
支持构建信息属性排除
另外需要注意的是,Spring Boot每年会在5月份和11月份发布两个中型版本,每个中型版本提供1年的免费支持,那也就意味着2.4.x已经停止了版本停止(免费)支持。不过对本次版本更新点有所了解即可,等待下次大版本更新再去学,一更新马上用新的实在学不动~~
参考:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6.0-Configuration-Changelog
推荐文章
1、一款高颜值的 SpringBoot+JPA 博客项目2、超优 Vue+Element+Spring 中后端解决方案3、推荐几个支付项目!4、推荐一个 Java 企业信息化系统5、一款基于 Spring Boot 的现代化社区(论坛/问答/社交网络/博客)
SpringBoot 2.6.0发布:禁止循环依赖,还有哪些实用的更新?相关推荐
- loadrunner录制0事件_Android Studio 4.0发布:全新的 Motion 编辑器及众多更新
在当前这个充满不确定性的时期,来自世界各地的无数开发人员依旧在想方设法继续做自己最擅长的工作--为 Android 创建出色的应用,这让我们感动不已.无论你是已经复工回到办公室,还是依旧在家远程办公, ...
- PowerToys 0.19.0 发布,微软开发的免费实用工具集
微软发布了 PowerToys 0.19.0 版本.0.19 发布周期目标有一个大目标,那就是增加稳定性和质量上的修复.此版本已经解决了 100 多个 issues. 安装体验也得到了改善,部分改动将 ...
- Spring中循环依赖的解决办法
点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 1.什么是循环依赖? 循环依赖就是循环引用,就是两个或多个bean相互之间的持有对方. A类中有一个B类型的成员变量, ...
- SpringBoot整合BeetlSql3.0及BeetlSql3.0快速入门说明
一 SpringBoot整合BeetlSql3.0 1.1 加入依赖 <dependencies><dependency><groupId>org.springfr ...
- 红帽将停止支持 CentOS 8;2020 百度沸点揭晓年度知识热词;Qt 6.0 发布|极客头条...
整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「 ...
- 苹果WWDC20确定6月22日线上举办;任天堂遭史上最大规模黑客攻击 ;Inkscape 1.0 发布 | 极客头条...
整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...
- ZX Messenger 9.0 发布
ZX Messenger 9.0 发布 www.skycn.com/soft/13653.html 服务器更新: 1.把vb6的标准版服务器升级成vb.net并重写部分代码,使服务器真正支持多线程(新 ...
- .NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容
.NET Core 3.0 Preview 3已经推出,它包含了一系列关于ASP.NET Core的新的更新. 下面是该预览版的更新列表: Razor组件改进: 单项目模板 新的Razer扩展 End ...
- java grpc 服务路由_.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容
原标题:.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容 英文:devblogs.microsoft.com 来源:艾心 译文:cnblogs.com/ediso ...
最新文章
- 软件开发代码中各国语言对应的缩写
- 安装MYSQL出现checking for termcap functions library
- Andriod --- JetPack (五):DataBinding + LiveData +ViewModel 简单实例
- linux中的和,|和||
- 解析《中国互联网软件测试行业2018年度调研报告》
- mysql 字段存储多个值 ,判断一个值是否在其中
- javafx11 最佳实践_JavaFX移动应用程序最佳实践,第1部分
- springboot需要tomcat服务器吗_SpringBoot学习(二):内嵌服务器引擎(Tomcat,Jetty)实现原理...
- 逻辑分析推理(戴帽子问题)博弈
- 使用mysql命令修改配置信息
- 对android上下文和窗口的理解
- 基于JAVA+SpringBoot+Mybatis+MYSQL的高铁售票系统
- LHF Objective-C语法(7)id类型、动态判断与选择器
- Python下的数据处理和机器学习,对数据在线及本地获取、解析、预处理和训练、预测、交叉验证、可视化
- 彻底解决android读取中文txt的乱码(自动判断文档类型并转码
- CTO 说,再用错@Autowired 和@Resource 就可以领盒饭了
- Linux下rpm安装git
- WebForm 基础
- 过期不候--具备生命周期的数据的技术实现方案
- 翻新电子元器件识别的一些方法技巧
热门文章
- Mac OS X安装之虚拟机环境下的总结
- SRM596 DIV2 1000
- MFC常用类、成员函数、数组类、Cstring类、CTime类、CPoint类
- 最优化算法python实现篇(2)—无约束一维极值(二分法)
- C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白
- java元婴期(24)----java进阶(mybatis(3)---动态sql(重点))
- 【自动群发小助手】微信也能定时发送消息?过年终于不用熬夜守点发祝福了~
- 【文字识别小程序】快速识别文字,一款用了就再也离不开的宝藏神器~(出道即巅峰永久免费)
- docker搭建pwn环境
- SocketAPI,CAsyncSocket,CSocket内幕及其用法