来源
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、支持Gradle7SpringBootGradle插件支持Gradle7.0.x,并已针对其进行了测试。
3、支持Jetty10SpringBoot2.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、LayeredWARsSpringBootMaven和Gradle插件现在可以创建分层的WAR了,分层WAR与SpringBoot2.3版本中提供的分层JAR工作方式类似,为了可以更好的与Docker映像一起使用,提升构建速度。
这个我后续再更新一篇吧,想学习接收最新推送,请持续