欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

本月16日SpringBoot2.2发布,有哪些变化先知晓

程序员文章站 2022-07-09 21:13:41
本月(2019年10月16日)Spring Boot 2.2已经正式发布了!在此篇文章中,将给大家介绍一下2.2版为大家带来了哪些重要的新变化。笔者用心书写, 希望阅读完成之后转发关注,你的支持是我不竭的创作动力! 一、Spring bean全局延迟初始化配置 Spring Boot 2.2引入的一 ......

本月16日SpringBoot2.2发布,有哪些变化先知晓

本月(2019年10月16日)spring boot 2.2已经正式发布了!在此篇文章中,将给大家介绍一下2.2版为大家带来了哪些重要的新变化。笔者用心书写,希望阅读完成之后转发关注,你的支持是我不竭的创作动力!

一、spring bean全局延迟初始化配置

spring boot 2.2引入的一项新功能是全局延迟bean初始化的支持(默认情况下,此功能处于禁用状态)。那么如果启用全局延迟bean初始化时会如何?

  • 所有spring bean及其依赖项的初始化,只有当他们被使用到的时候才被创建。

为了减少应用程序的初始化过程和启动时间,您现在可以使用以下的属性配置启用全局延迟初始化spring bean:

spring.main.lazy.initialization=true

但是全局延迟初始化的缺点是显而易见的,在进行任何延迟的初始化时,http请求的第一次处理可能需要更长的时间。后续请求不受影响。所以应该谨慎使用。如果您不想在全局范围内使用延迟初始化spring bean,则可以考虑使用@lazy注释为特定bean配置延迟初始化。

二、默认情况下禁用jmx

从spring boot 2.2开始,默认情况下禁用jmx。这有助于缩短应用程序的启动时间,并且不会在运行时浪费大量资源。如果您依赖jmx,则可以再次启用它:

spring.jmx.enabled=true

三、被@configurationproperties注解的类被初始化为bean

spring boot将为每个@configurationproperties通过类路径扫描发现的配置类创建一个bean。在之前版本的开发过程中,如果我们希望配置类被初始化为一个bean ,则需要在配置类上使用@component注解使其成为bean。现在不需要了,只需要一个@configurationproperties注解。

注意:如果两个注解都用,被注解的类可能会创建两个bean,所以请把@component注解移除掉。不要两个一起用。

四、java 13支持

本月16日SpringBoot2.2发布,有哪些变化先知晓

java 13于2019年9月17日正式发布了。

spring framework 5.2和spring boot 2.2也支持java13。lts java版本8和11将与spring boot 2.2保持兼容。

五、配置(键)更改

spring boot 2.2引入了许多新的配置。还有一些不推荐使用和被删除的配置。比较重要的更改是:

  • logging.file属性已重命名为logging.file.name
  • logging.path属性已重命名为logging.file.path

本月16日SpringBoot2.2发布,有哪些变化先知晓

六、 依赖升级

spring boot 2.2附带了许多依赖项升级。

与spring相关的依赖项升级:

  • spring framework 5.2.0
  • spring amqp 2.2.0
  • spring batch 4.2.0
  • spring data moore release
  • spring hateoas 1.0.0
  • spring integration 5.2.0
  • spring kafka 2.3.0
  • spring security 5.2.0
  • spring session corn

其他最重要的依赖项升级:

  • elasticsearch 6.8.3(see breaking changes: in6.5,6.6and6.7)
  • flyway 6.0.6
  • hsqldb 2.5.0
  • jackson 2.10.0
  • jersey 2.29.1
  • kafka 2.3.0
  • kotlin 1.3.50
  • lombok 1.18.10
  • micrometer 1.3
  • netty 4.1.42
  • reactor dysprosium
  • solr 8.2.0
  • tomcat 9.0.27

测试依赖项升级:

  • assertj 3.13.2(breaking changes)
  • hamcrest 2.1
  • mockito 3.1.0
  • junit 5.5.2(junit 5’s vintage engine still support existing junit 4-based test classes so no breaking changes here)

期待您的关注