关于java:Spring-Boot-25-重磅发布黑暗模式太炸了

4次阅读

共计 3682 个字符,预计需要花费 10 分钟才能阅读完成。

前言

间隔上次的 Spring Boot 2.4.5 版本公布刚好一个月左右,Spring Boot 又发新版本了!

Spring Boot 又一次性公布了 3 个版本:

  • Spring Boot 2.5.0
  • Spring Boot 2.4.6
  • Spring Boot 2.2.13.RELEASE

在这次公布的 3 个版本中,Spring Boot 2.5 毫无疑问是最重大的一个版本,也是近半年公布的最大版本,上一个 Spring Boot 2.4 版本还是在半年之前。

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

Maven 依赖先给大家奉上:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.0</version>
    <type>pom</type>
</dependency>

须要留神的是,2.4.x 版本开始 是不带 .RELEASE 版本后缀的!

Spring Boot 2.5 又带来了许多新个性和改良,快来看看更新了啥吧!

Spring Boot 2.5 新个性一览

1、反对 Java 16

我只能说 Spring Boot 厉害了,Java 16 都开始反对了(同时兼容 Java 8),毕竟 Java 16 才公布两个多月。。

新版本任它发,咱们都用 8,所以,尽管当初咱们还远远用不上 Java 16,但 Spring Boot 能反对上就最好不过,这样对于那些想基于 Java 16 进行学习、开发的 Spring Boot 的同鞋就太好了(反正不是我)。

参考:JDK 16 正式公布,一次性公布 17 个新个性

2、反对 Gradle 7

Spring Boot Gradle 插件反对 Gradle 7.0.x,并已针对其进行了测试。

3、反对 Jetty 10

Spring Boot 2.5 当初反对 Jetty 10 内嵌了,因为 Jetty 10 须要依赖 Java 11,所以当初默认还是放弃在 Jetty 9。

4、反对 HTTP/2 over TCP (h2c)

Spring Boot 2.5 所有内置的容器都能够反对 HTTP/2 over TCP (h2c),而无需进行任何手动定制。

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

1)数据源调整

Spring Boot 2.5 中的某些数据源初始化的办法被从新设计了,上面的数据源参数配置也被破除了:

spring.datasource.*

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

spring.sql.init.*

这个改变还挺大的,没事乱改啥参数,集体感觉之前的没故障!

2)Flyway 和 Liquibase 调整

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

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

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

6、环境变量前缀

Spring Boot 2.5 能够为零碎环境变量指定前缀了,这样能够不便咱们在同一环境中运行多个不同的 Spring Boot 利用,而不必受重名环境变量抵触。

应用办法如下:

SpringApplication application = new SpringApplication(Javastack.class);
application.setEnvironmentPrefix("javastack");
application.run(args);

这样设置一下的话,所有 javastack-* 结尾的零碎环境变量才会被绑定。

比方:

javastack-id
javastack-name
javastack-age

7、加强 Docker 映像构建

Spring Boot Maven/ Gradle 插件当初都开始反对:

1)都反对自定义构建包;

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

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

8、Layered WARs

Spring Boot Maven 和 Gradle 插件当初能够创立分层的 WAR 了,分层 WAR 与 Spring Boot 2.3 版本中提供的分层 JAR 工作形式相似,为了能够更好的与 Docker 映像一起应用,晋升构建速度。

这个我后续再更新一篇吧,想学习接管最新推送,请继续关注微信公众号:Java 技术栈,公众号第一工夫推送。

9、相干端点和指标变更

1)当初 /info actuator 端点不再默认凋谢了,如果应用了 Spring Security 的话,这个端点还须要身份认证能力拜访,增强 info 端点的安全性;

2)新增了 /quartz 端点,这个端点提供了 Quartz 作业和触发器相干的的具体数据;

3)为 /startup 端点反对 get 申请,与 post 申请不同的是,get 申请的端点不会开释事件缓冲区,而且事件将持续保留在内存中;

4)为 /actuator/prometheus 端点提供规范 Prometheus 以及 OpenMetrics 响应;

5)为 Spring Data repositories 生成 Micrometer 指标;

6)主动生成 MongoDB 连接池、客户端命令相干指标;

10、官网文档界面和性能更新,还反对光明模式

Spring 我的项目首页光明模式:

Spring Boot 文档光明模式:

这个性能太炸了,有了光明模式,Java 程序员同鞋们再也不怕早晨熬夜学习 Spring Boot 了,如果你说你的电脑原本就反对,那当然没问题,然而原生反对可能兼容性更好。。

另外栈长顺便看了下 Spring / Spring Cloud 的文档,目前还不反对光明模式,预计前面所有我的项目文档都会反对上。

Spring Boot 2.5 依赖降级

降级了一系列依赖的 Spring 我的项目版本:

  • Spring Data 2021.0
  • Spring HATEOAS 1.3
  • Spring Integration 5.5
  • Spring Kafka 2.7
  • Spring Retry 1.3
  • Spring Security 5.5
  • Spring Session 2021.0

降级了一系列依赖的第三方依赖库:

  • Kotlin 1.5
  • Groovy 3.0
  • Flyway 7.7
  • Liquibase 4.2
  • Jackson 2.12
  • Kafka 2.7
  • Cassandra Driver 4.10
  • Embedded Mongo 3.0
  • Hibernate Validator 6.2
  • Jersey 2.33
  • Mockito 3.7
  • MongoDB 4.2
  • JUnit Jupiter 5.7
  • Elasticsearch 7.12

Spring Boot 2.5 性能破除

1)移除 Spring Data Solr 相碰的主动配置,因为 Spring Data 2021.0.0 曾经将其移除了;

2)移除了 org.springframework.boot.actuate.endpoint.http 包下的 ActuatorMediaType 和 ApiVersion 类;

3)jOOQ’s *Provider 的相干回调接口实现和设置曾经被弃用,当初应该改用 DefaultConfigurationCustomizer 配置类;

4)org.springframework.boot.autoconfigure.data.jpa 包下的 EntityManagerFactoryDependsOnPostProcessor 类被移到了 org.springframework.boot.autoconfigure.orm.jpa 包下;

总结

终于写完了,又肝了一个周末!!

能够看出 Spring Boot 2.5 的变更还是蛮大的,特地是新的数据源机制、相干端点的变更,还有许多框架的重大版本升级。

切记不要轻易降级到这个版本,如需降级,最好是具体看清楚变更内容,做好充沛测试,免得年终奖没了。。

后续栈长有工夫再深入研究下更多的细节,给大家带来更具体的技术文章,关注公众号 Java 技术栈第一工夫推送。

最初,大家感觉本文有用的话,动动小手,给栈长来个小小的在看、转发呗,原创不易,须要你的激励哦~

更多请参考官网文档:

https://github.com/spring-pro…

版权申明:本文系公众号 “Java 技术栈 ” 原创,原创实属不易,转载、援用本文内容请注明出处,禁止剽窃、洗稿,请自重,尊重别人劳动成果和知识产权。

近期热文举荐:

1.600+ 道 Java 面试题及答案整顿(2021 最新版)

2. 终于靠开源我的项目弄到 IntelliJ IDEA 激活码了,真香!

3. 阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!

4.Spring Cloud 2020.0.0 正式公布,全新颠覆性版本!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

正文完
 0