数据结构论坛

首页 » 分类 » 问答 » SpringBoot25重磅发布
TUhjnbcbe - 2021/7/28 19:45:00
北京最好的白癜风专科医院在哪里 https://baike.baidu.com/item/%E5%8C%97%E4%BA%AC%E4%B8%AD%E7%A7%91%E7%99%BD%E7%99%9C%E9%A3%8E%E5%8C%BB%E9%99%A2/9728824?fr=aladdin

来源

Java技术栈(ID:javastack)

粉丝福利:感谢大家的积极参与,上次送书活动没有中书的朋友请不要灰心,今天的活动继续等着你~这次真不要错过啦~

前言

距离上次的SpringBoot2.4.5版本发布刚好一个月左右,SpringBoot又发新版本了!

SpringBoot又一次性发布了3个版本:

SpringBoot2.5.0SpringBoot2.4.6SpringBoot2.2.13.RELEASE

在这次发布的3个版本中,SpringBoot2.5毫无疑问是最重大的一个版本,也是近半年发布的最大版本,上一个SpringBoot2.4版本还是在半年之前。

本文重点介绍下SpringBoot2.5.0,另外两个版本都是优化版本,只是修复了一些bug,以及文档优化、依赖升级等,就没什么好介绍的了。

Maven依赖先给大家奉上:

dependency
  groupIdorg.springframework.boot/groupId
  artifactIdspring-boot-starter-parent/artifactId
  version2.5.0/version
  typepom/type/dependency

需要注意的是,2.4.x版本开始是不带.RELEASE版本后缀的!

SpringBoot2.5又带来了许多新特性和改进,快来看看更新了啥吧!

SpringBoot2.5新特性一览1、支持Java16

我只能说SpringBoot厉害了,Java16都开始支持了(同时兼容Java8),毕竟Java16才发布两个多月。。

新版本任它发,我们都用8,所以,虽然现在我们还远远用不上Java16,但SpringBoot能支持上就最好不过,这样对于那些想基于Java16进行学习、开发的SpringBoot的同鞋就太好了(反正不是我)。

参考:Java16正式发布,JDK16新特性速览!程序猿你还追的上吗

2、支持Gradle7

SpringBootGradle插件支持Gradle7.0.x,并已针对其进行了测试。

3、支持Jetty10

SpringBoot2.5现在支持Jetty10内嵌了,因为Jetty10需要依赖Java11,所以现在默认还是保持在Jetty9。

4、支持HTTP/2overTCP(h2c)

SpringBoot2.5所有内置的容器都可以支持HTTP/2overTCP(h2c),而无需进行任何手动定制。

5、新的数据源初始化机制

1)数据源调整

SpringBoot2.5中的某些数据源初始化的方法被重新设计了,下面的数据源参数配置也被废除了:

spring.datasource.*

新的数据源参数配置如下:

spring.sql.init.*

这个改动还挺大的,没事乱改啥参数,个人觉得之前的没毛病!

2)Flyway和Liquibase调整

这两个是主流的数据库版本管理工具,使用spring.flyway.url和spring.liquibase.url定义的时候需要加上username/password进行认证。

早期的版本中,这些参数都是从spring.datasource中派生的,用户在自定义数据源的时候会存在问题。

另外,如果使用了自定义数据源和Liquibase一起使用,现在会使用SimpleDriverDataSource数据源类进行配置,之前的版本使用的是池化数据源,会导致数据源初始化效率低下。

6、环境变量前缀

SpringBoot2.5可以为系统环境变量指定前缀了,这样可以方便我们在同一环境中运行多个不同的SpringBoot应用,而不用受重名环境变量冲突。

使用方法如下:

SpringApplicationapplication=newSpringApplication(Javastack.class);application.setEnvironmentPrefix("javastack");application.run(args);

这样设置一下的话,所有javastack-*开头的系统环境变量才会被绑定。

比如:

javastack-idjavastack-namejavastack-age7、增强Docker映像构建

SpringBootMaven/Gradle插件现在都开始支持:

1)都支持自定义构建包;

2)都支持Docker构建包时传递卷数据(volume)绑定;

3)都支持打包可执行的war文件到Docker映像中;

8、LayeredWARs

SpringBootMaven和Gradle插件现在可以创建分层的WAR了,分层WAR与SpringBoot2.3版本中提供的分层JAR工作方式类似,为了可以更好的与Docker映像一起使用,提升构建速度。

这个我后续再更新一篇吧,想学习接收最新推送,请持续

1
查看完整版本: SpringBoot25重磅发布