springboot2.6重磅发布!!!(代码片段)

黄小斜 黄小斜     2023-02-15     391

关键词:

等了很久, Spring Boot 2.6 终于在昨天发布啦!

我还是今天无聊逛推特的时候看到自己关注的一个 Spring 项目的一个开发大佬发的动态才知道的。看来多关注一些大佬了解技术最新动向还是很有必要的!

Spring Boot 2.6 重要改动

这次更新为我们带来很多好用的新特性/改进,我这里简单总结一下。

详细的 Spring Boot 2.6 改动信息,小伙伴们可以在这里找到:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6-Release-Notes 。你可以结合 Spring Boot 2.6 的官方文档来学习,地址:https://docs.spring.io/spring-boot/docs/current/reference/html/index.html 。

info 端点暴露 Java 运行信息

Spring Boot Actuator 是 Spring Boot 官方提供的监控模块,提供了很多开箱即用的端点(比如/health/metrics/info)帮助我们来监控和管理 Spring Boot 应用。

几行代码,我们就可以为 Spring Boot 项目引入 Spring Boot Actuator 。

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.properties

# 暴露 info 端点
management.endpoints.web.exposure.include=info
management.info.java.enabled=true

Spring Boot 2.6 版本对 info 端点进行了增强改进:

metrics 端点暴露启动和磁盘空间信息

application.properties

management.endpoints.web.exposure.include=metrics

metrics 端点分别新增了 2 个应用程序启动和磁盘空间信息的指标。

获取某个具体的指标的详细信息: http://localhost:8080/actuator/metrics/MetricName

默认情况下禁止循环引用

如果两个类互相引用对方,那就会发生循环依赖问题。

@Service
public class OrderService 
    @Autowired
    private UserService userService;

@Service
public class UserService 
    @Autowired
    private OrderService orderService;

在 Spring Boot 2.6 版本中,循环引用默认情况下已经被禁止了。如果你的项目存在循环引用问题,那你在启动项目的时候就会报错。

如果你想关闭禁止循环引用的话,可以直接修改配置 spring.main.allow-circular-referencestrue

WebTestClient 支持测试 Spring MVC

WebTestClient 诞生之初主要是为了测试 Spring WebFlux 项目,这次改版之后,WebTestClient 已经可以支持普通的 Spring MVC 项目。

@SpringBootTest
@AutoConfigureWebTestClient
class MyMockWebTestClientTests 
    @Autowired
    WebTestClient webClient;

    @Test
    void helloWorldTest() 
        webClient
                .get().uri("/hello")
                .exchange()
                .expectStatus().isOk()
                .expectBody(String.class).isEqualTo("Hello World!");
    

Docker 镜像构建功能增强

Spring Boot 官方提供了 docker-maven-plugin 插件来帮助我们构建 Docker 镜像。

在 Spring Boot 2.6 版本中,这个插件的功能得到了小幅加强:

  • 支持自定义镜像设置额外的 Tags

  • 网络配置

  • 构建缓存配置

Maven 构建信息的默认时间

Maven 插件在构建项目的时候可以使用 project.build.outputTimestamp属性值作为默认构建时间。

自动启用 Redis 连接池

你的项目如果依赖了 commons-pool2 的话,Redis(Jedis 和 Lettuce)将会自动启动连接池。

如果你想禁用自动启用连接池,可以设置spring.redis.jedis.pool.enabledspring.redis.lettuce.pool.enabledfalse

总结

相比于上一个版本,Spring Boot 2.6 的改进还是比较多的,不过都是比较小的改动和升级,简单了解和学习一下就好。没有太大必要升级,带来收益比较小。


 

— 【 THE END 】—

本公众号全部博文已整理成一个目录,请在公众号里回复「m」获取!

最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 PDF 领取,更多内容陆续奉上。
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)

重磅:springboot2.6正式发布,一大波新特性,看完我彻底躺平了。。(代码片段)

SpringBoot2.6.0来了太猛了!SpringBoot2.5.6发布不到一个月,SpringBoot又接连发布了三个版本:SpringBoot2.6.0(最新)SpringBoot2.5.7SpringBoot2.4.13后面两个版本都是修复bug版本,2.6.0才是硬菜。。先给大家奉上几个版本... 查看详情

重磅:springboot2.7正式发布,一大波新特性,看完我彻底躺平了。。(代码片段)

SpringBoot2.7来了大家好,我是栈长。SpringBoot2.6.0发布已经过去大半年了,现在SpringBoot2.7.0如期而至:SpringBoot又接连发布了三个版本:SpringBoot2.7.0(最新)SpringBoot2.6.8SpringBoot2.5.14后面两个版本都是修复bug版本... 查看详情

重磅!springboot2.7正式发布,一大波新特性,看完我彻底躺平了。。(代码片段)

点击关注公众号,Java干货及时送达SpringBoot2.7来了大家好,我是栈长。SpringBoot2.6.0发布已经过去大半年了,现在SpringBoot2.7.0如期而至:SpringBoot又接连发布了三个版本:SpringBoot2.7.0(最新)SpringBoot2.6.8Spri... 查看详情

重磅:springboot2.7正式发布,一大波新特性,看完我彻底躺平了。。

SpringBoot2.7来了大家好,我是栈长。SpringBoot2.6.0发布已经过去大半年了,现在SpringBoot2.7.0如期而至:SpringBoot又接连发布了三个版本:SpringBoot2.7.0(最新)SpringBoot2.6.8SpringBoot2.5.14后面两个版本都是修复bug版本 查看详情

重磅!springboot2.7正式发布,一大波新特性,看完我彻底躺平了。。

点击关注公众号,Java干货及时送达SpringBoot2.7来了大家好,我是栈长。SpringBoot2.6.0发布已经过去大半年了,现在SpringBoot2.7.0如期而至:SpringBoot又接连发布了三个版本:SpringBoot2.7.0(最新)SpringBoot2.6.8Spri... 查看详情

springboot2.6.1正式发布,2.4.xgameover,2.5.0成最低支持版本。。(代码片段)

上一篇:重磅!SpringBoot2.6正式发布这SpringBoot2.6才发布几天?栈长刚看了下,才隔了一周左右的时间吧,SpringBoot2.6.1又来了:这次我能说我真的跟不上了吗?我只想送它三个字:版本王!这次不... 查看详情

springboot2.6.0发布:禁止循环依赖,还有哪些实用的更新?(代码片段)

点击关注公众号,实用技术文章及时了解SpringBoot2.6.0已经正式发布,快看看作了哪些升级。1、禁止了循环依赖循环依赖问题一直困扰大家,也是面试常问题目之一,对循环依赖不了解的可以看这篇:Spring高频... 查看详情

springcloud2021.0.0正式发布:第一个支持springboot2.6的版本(代码片段)

....com/美国时间12月2日,SpringCloud正式发布了第一个支持SpringBoot2.6的版本,版本号为:2021.0.0,codename为Jubilee。在了解具体更新内容之前,先提个最重要的点:2021.0.0版本对应的SpringBoot是从2.6.1开始的,所... 查看详情

springcloud2021.0.0正式发布:第一个支持springboot2.6的版本(代码片段)

....com/美国时间12月2日,SpringCloud正式发布了第一个支持SpringBoot2.6的版本,版本号为:2021.0.0,codename为Jubilee。在了解具体更新内容之前,先提个最重要的点:2021.0.0版本对应的SpringBoot是从2.6.1开始的,所... 查看详情

解决springboot2.6和swagger冲突的问题(代码片段)

...台服务从SpringBoot1升级到2版本,主要目的是为了使用SpringBoot2的实时监控功能。集成的时候无法启动,根据日志判断与swagger有关。信息如下:org.springframework.context.ApplicationContextException:Failedtostartbean'documentationP 查看详情

springboot2.6.3集成quartz(代码片段)

quartz使用quartz启动需要数据库有很多表的支持,这些表的建表脚本可以通过如下方式找到如何找到quartz的数据库脚本在这里下载,需要注意的是下载2.2.3这个版本,不知道为什么高版本的反而没有。集成Springboot代码yml... 查看详情

springboot2.6.3集成quartz(代码片段)

quartz使用quartz启动需要数据库有很多表的支持,这些表的建表脚本可以通过如下方式找到如何找到quartz的数据库脚本在这里下载,需要注意的是下载2.2.3这个版本,不知道为什么高版本的反而没有。集成Springboot代码yml... 查看详情

springboot2.6.3集成quartz(代码片段)

quartz使用quartz启动需要数据库有很多表的支持,这些表的建表脚本可以通过如下方式找到如何找到quartz的数据库脚本在这里下载,需要注意的是下载2.2.3这个版本,不知道为什么高版本的反而没有,真是佛了集成Sp... 查看详情

解决springboot2.6和swagger冲突的四种方法(代码片段)

...台服务从SpringBoot1升级到2版本,主要目的是为了使用SpringBoot2的实时监控功能。集成的时候无法启动,根据日志判断与swagger有关。信息如下:org.springframework.context.ApplicationContextException:Failedtostartbean'documentationP 查看详情

springboot学习总结(29)——springboot2.6新特性(代码片段)

SpringBoot2.6.0:<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-parent</artifactId>  <version>2.6.0</version>  <type>pom</type></dependency>SpringBoot2.5.7... 查看详情

springboot学习总结(29)——springboot2.6新特性(代码片段)

SpringBoot2.6.0:<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-parent</artifactId>  <version>2.6.0</version>  <type>pom</type></dependency>SpringBoot2.5.7... 查看详情

springboot2.6.2自动装配(注解源码解析)(代码片段)

文章目录一.@SpringBootConfiguration二.@ComponentScan三.@EnableAutoConfiguration3.1@AutoConfigurationPackage3.2@import四.按需装配自动装配的核心即@SpringBootApplication注解中三大注解核心@SpringBootApplication@SpringBootConfiguration@Comp... 查看详情

「重磅」reactservercomponents(代码片段)

背景2020.12.21号,DanAbramov,LaurenTan,JosephSavona,andSebastianMarkbåge联合发布了一项React新功能:ReactServerComponents并组织了一场专题演讲:IntroducingZero-Bundle-SizeReactServerComponents。地址:https://www.youtube.com/watch... 查看详情