上周(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注解。
四、Java 13支持
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
六、 依赖升级
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)
期待您的关注
推荐:SpringBoot系列精品文章(16章97节), http://springboot.zimug.com
本号只做持续的知识输出,希望您能关注、评论、转发!您的支持是我不竭的创作动力!让知识产生价值、让程序员改变世界!