前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot 2.6 重磅发布!!!

Spring Boot 2.6 重磅发布!!!

作者头像
Guide哥
发布2021-11-23 15:03:24
1K0
发布2021-11-23 15:03:24
举报
文章被收录于专栏:JavaGuideJavaGuide

等了很久, 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

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.properties

代码语言:javascript
复制
# 暴露 info 端点
management.endpoints.web.exposure.include=info
management.info.java.enabled=true

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

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

application.properties

代码语言:javascript
复制
management.endpoints.web.exposure.include=metrics

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

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

默认情况下禁止循环引用

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

代码语言:javascript
复制
@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 项目。

代码语言:javascript
复制
@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 的改进还是比较多的,不过都是比较小的改动和升级,简单了解和学习一下就好。没有太大必要升级,带来收益比较小。

············ END ··············

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaGuide 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Boot 2.6 重要改动
    • info 端点暴露 Java 运行信息
      • metrics 端点暴露启动和磁盘空间信息
        • 默认情况下禁止循环引用
          • WebTestClient 支持测试 Spring MVC
            • Docker 镜像构建功能增强
              • Maven 构建信息的默认时间
                • 自动启用 Redis 连接池
                • 总结
                相关产品与服务
                容器镜像服务
                容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档