SpringBoot2.6.0来了!SpringBoot2.5.6发布不到一个月,SpringBoot先后发布了三个版本:SpringBoot2.6.0(最新)SpringBoot2.5.7SpringBoot2.4.13后两个版本为bug修复版本,2.6.0是硬菜。.让我给你几个版本的Maven依赖项:SpringBoot2.6.0:org.springframework.bootspring-boot-starter-parent2.6.0pomSpringBoot2.5.7:org.springframework.bootspring-boot-starter-parent2.5.7pomSpringBoot2.4.13:org.springframework.bootspring-boot-starter-parent2.4.13pom需要注意的是2.4.x版本开始的版本号没有a.RELEASE后缀起来!栈长整理了之前SpringBoot的最新版本:版本发布时间停止维护时间2.7.02022/05-2.6.02021/12/18-2.5。08/122.3.x2020/05/152022/02/152.2.x2019/10停产2.1.x2018/10已经停止维护2.0.x2018/03已经停止维护1.5.x2017/01已经停止维护可以看到,SpringBoot2.6.0原本计划在今年12月发布,没想到一个月就发布了提前。很突然。话不多说,让我们关注一下SpringBoot2.6.0有什么新东西?SpringBoot2.6.0新特性1.默认禁止循环引用。我们都知道,如果两个bean互相注入,会出现循环引用问题,如下代码所示:classUserService{@AutowiredLogServicelogService;}LogService:/***作者:StackLeader*来源微信公众号:Java技术栈*/@ServicepublicclassLogService{@AutowiredUserServiceuserService;}这两个bean互相引用,这是一个循环引用。现在,2.6.0版本已经默认禁止bean之间的循环引用。如果存在循环引用,会启动失败并报错:解决方法:1)整顿业务,清理所有循环引用的bean;2)设置允许循环引用:spring:main:allow-circular-references:true也可以通过SpringApplication和SpringApplicationBuilder设置,如:/***作者:StackLeader*来源微信公众号:Java技术栈*/publicstaticvoidmain(String[]args){SpringApplicationapplication=newSpringApplication(Application.class);//允许循环引用application.setAllowCircularReferences(true);application.run(args);}2.SupportCookieSameSite属性现在可以使用server.session.cookie.same-site属性在servlet应用的sessioncookie上配置SameSite属性,这个适用于自动配置的Tomcat,Jetty和Undertow应用程序服务器,与自定义无关。server.session.cookie.same-site支持的三种配置:SameSite参考值说明:None(off模式,Secure必须同时设置)Lax(松散模式,允许一些第三方cookie,如:Getformrequest,linkjumpEtc.)Strict(严格模式,完全禁止第三方cookies,只有url一致才发送cookies)SameSite读写:SameSite是浏览器对cookies的新属性,主要用于限制第三方cookies以防止CSRF攻击。谷歌搜索等响应头:另外,如果你想将SameSite属性应用到其他cookie,你可以使用CookieSameSiteSupplier接口。更多细节请参考:https://docs.spring.io/spring...3.Reactive应用服务器session属性本版本扩展了reactive应用服务器支持的session属性。以前在spring.webflux.session下的现在在server.reactive.session下,并提供与servlet版本相同的属性。4.支持自定义脱敏规则SpringBoot现在可以清理存在于/env和/configprops端点的敏感值。或者,可以通过添加类型为SanitizingFunction的@Bean类来配置自定义清理规则。这种感觉非常重要。端点无法显示敏感信息,栈长研究后分享。关注公众号Java技术栈,第一时间推送。5.重要端点变化环境变量/env端点默认不开启,可通过如下配置开启:management.info.env.enabled=true另外,SpringBoot下的/info端点现在可以公开Java运行时信息,例如显示以下示例java节点:{"java":{"vendor":"BellSoft","version":"17","runtime":{"name":"OpenJDKRuntimeEnvironment","version":"17+35-LTS"},"jvm":{"name":"OpenJDK64-BitServerVM","vendor":"BellSoft","version":"17+35-LTS"}}}设置方法:management.info.java.enabled=true6.构建信息属性排除现在可以从SpringBootMaven或Gradle插件生成的build-info.properties文件中排除特定属性。例如排除Maven的版本属性:version7.Redis连接池当commons-pool2在类路径中时,Redis(包括:Jedis和生菜)支持自动连接池。也可以设置禁用连接池:spring.redis.jedis.pool.enabled=false或spring.redis.lettuce.pool.enabled=false8.WebTestClient测试现在可以使用WebTestClient在Mock环境下测试WebFlux应用,或测试实时服务器测试任何SpringWeb应用程序。这是什么测试?你为什么又要做这个测试?后台栈长有空学习分享,关注公众号Java技术栈,第一时间推送。9、支持Log4j2复合配置现在支持Log4j2复合配置,可以使用logging.log4j2.config.override参数指定其他覆盖主日志配置文件的日志配置文件。10.依赖升级官方项目升级新版本:SpringSecurity5.6SpringData2021.1SpringHATEOAS1.4SpringKafka2.8SpringAMQP2.4SpringSession2021.1.0第三方依赖升级新版本:ApacheKafka3.0Artemis2.19CassandraDriver4.13CommonsDBCP2.9CONSON池2.11COUCHBASE客户3.2.2Elasticsearch7.15Flyway8.0.5Hibernate5.6JunitJupiter5.8Jedis3.7Kafka3.7Kafka3.0Kotlin1.6-liquibase4.5microster4.5microter4.5microter1.5mockito1.8mockito使用并删除了项目1)AbstractDataSourceInitializer类已被弃用,取而代之的是DataSourceScriptDatabaseInitializer。此外,AbstractDataSourceInitializer的子类已被弃用,取而代之的是基于DataSourceScriptDatabaseInitializer的新类。2)SpringPhysicalNamingStrategy类已被弃用,取而代之的是Hibernate5.5中的CamelCaseToUnderscoresNamingStrategy类。3)AbstractApplicationContextRunner类中的三个方法已被弃用并替换为新的基于RunnerConfiguration的类。4)SpringApplicationRunListener中的started和running方法已经被弃用,取而代之的是一个接受Duration参数的新方法:参数是有的,为什么在方法中不用?我勒个去。.这或许是为下个版本彻底移除埋下伏笔!5)与第4)点相同,ApplicationStartedEvent和ApplicationReadyEvent中的构造函数也已替换为接受Duration参数的版本:6)EnvironmentEndpoint.sanitize已弃用。7)简化了Oracle数据库驱动的依赖管理,Oracle驱动包GroupIDcom.oracle.ojdbc需要升级为com.oracle.database.jdbc,现在去掉了对前者的依赖管理。此外,SpringBoot2.4中标记为弃用的类、方法和属性在该版本中已被完全删除。这次升级要注意了。如果使用了,应该会出现编译错误。总结除了上面列出的变化之外,Docker镜像、健康检查和指标监控方面也有增强。还有许多小的调整和改进。这里就不一一介绍了。可以参考官方的releasenotes:https://github.com/spring-pro...SpringBoot2.6.0变化挺多的,看看大家都在用什么,再考虑升级。如果只是学习和使用,可以随意升级,但是如果是生产环境,请慎重考虑,个人建议没必要跟上最新版本。.SpringBoot现在已经成为事实上的脚手架框架,让学习和开发变得更加简单。同时也让我觉得技术更新太快了,一定要不断学习,不然就会被淘汰。如果你没有用过SpringBoot,今天就给你发一份《Spring Boot 学习笔记》这篇很全,包括底层实现原理和代码实践,很全,帮助你快速打通SpringBoot的方方面面。之前的SpringBoot教程和示例源码编译:https://github.com/javastacks...最后,你用的是哪个版本的SpringBoot?欢迎使用投票统计!好了,今天的分享就到这里。稍后栈长会分享更多有趣的Java技术和最新的技术资料。关注公众号Java技术栈第一时间推送。我也会分享主流的Java面试题和参考答案。全部搞定后在公众号后台回复关键词“面试”刷题。最后,如果觉得我的文章对你有用,动动你的小手,送给正在看的人,转发吧,原创不易,楼主需要你的鼓励。版权声明:本文为公众号《Java技术栈》原创,原创不易,转载或引用本文内容请注明出处,抄袭者一律举报+投诉,并保留追究权利法律责任。近期热点文章推荐:1.1,000+Java面试题及答案(2021最新版)2.别在满屏的if/else中,试试策略模式,真的很好吃!!3.操!Java中xx≠null的新语法是什么?4、SpringBoot2.5发布,深色模式太炸了!5.《Java开发手册(嵩山版)》为最新版本,赶快下载吧!感觉不错,别忘了点赞+转发!