Spring Boot 2.3.0发布:优雅停机等新特性一览(下)

简介: Spring Boot 2.3.0发布:优雅停机等新特性一览(下)

核心依赖升级

Spring Boot 2.3迁移到几个Spring项目的新版本:


  • Spring Data Neumann:你可以理解为它就是之前的Spirng Data工程的升级版
  • Spring HATEOAS 1.1
  • Spring Integration 5.3
  • Spring Kafka 2.5
  • Spring Security 5.3
  • Spring Session Dragonfruit


Spring Boot 2.3的构建与Spring Boot 2.2基于 相同的 Spring Framework和Reactor。


说明:spirng-core么有升级,还是5.2.6版本(SB的2.2.7版本依赖的spring-core也是这个版本)


三方库依赖升级

  • AssertJ 3.16
  • Cassandra Driver 4.6
  • Elasticsearch 7.6
  • Hibernate Validator 6.1
  • JUnit Jupiter 5.6
  • Kafka 2.5
  • Lettuce 5.3
  • Micrometer 1.5
  • MongoDB 4.0


Spring Data Neumann升级带来的变化


  • Cassandra:升级到v4版本,带来了一些变化,如ClusterBuilderCustomizer就木有了~
  • Couchbase:升级到v3版本
  • Elasticsearch:已废弃的原生Elasticsearch transport直接被删除了,并且还移除了对Jest的支持。从此版本开始,默认支持Elasticsearch7.5+
  • MongoDB:升级到v4版本


关于Validation


从此版本开始,spring-boot-starter-web不会再把validation带进来,所以若使用到,你需要自己添加这个spring-boot-starter-validation依赖:


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>


关于spring-boot-starter-web启动器新、老版本的区别截图:


image.png


image.png


移除一些maven插件


移除了对exec-maven-plugin和maven-site-plugin这两个插件的管理,所以如果你的工程依赖于这两个插件,那么你得显示的导入(指定版本号)。


支持Java14


Spring Boot 2.3增加了对Java 14的支持。当然Java 8和Java 11也还是被支持的。


Docker支持


在Maven和Gradle插件中添加了对构建包含分层内容的jar文件的支持。分层根据jar内容的更改频率来分隔它们。这种分离允许更有效地构建Docker映像。未更改的现有层可以与已更改的层一起放在顶部进行重用。


根据您的应用程序,您可能需要调整层的创建方式并添加新层。这可以通过描述如何将jar分成层以及这些层的顺序的配置来完成。


Fat Jar支持优化


用Maven和Gradle构建的Fat jar现在包括一个索引文件。当jar被分解时,这个索引文件用于确保类路径的顺序与直接执行jar时相同。


嵌入式Servlet Web Server线程配置


用于配置嵌入式Servlet web服务器使用的线程的配置属性(包括Jetty, Tomcat, 和Undertow)别移动到了专注于threads的组:erver.jetty.threads,server.tomcat.threads,server.undertow.threads。当然喽,旧的配置属性目前依然保留着,但被标记为@Deprecated不再推荐使用了~


image.png


WebFlux基础路径配置


现在可以配置WebFlux应用程序的所有web处理程序的基本路径。使用pring.webflux.base-path = xxx配置。


活性探测器


Spring Boot现在内置了关于应用程序可用性的探测的能力,可以跟踪应用程序是否处于活动状态以及是否准备好处理流量。如果你配置了management.health.probes.enabled=true,那么健康检查端点就可以查看你应用的活性和就绪列表,这在在Kubernetes上运行时,这是自动完成的。


image.png


Actuator增强


主要是对端点做了些输出、显示上的优化。如:


  • /actuator/metrics/:按字母顺序排列,这样你找起来就更方便了
  • DataSource的HealthIndicator健康指示器,现在进行无查询判断,而Connection仅做连接可用性验证而已


好基友Spring Cloud什么时候跟上?


作为Spring Boot的好基友,按照以往的惯例,他俩的步调不一般都保持基本一致。戒指到当前,Spring Cloud的最新版本是Hoxton SR4,那它是否支持最新的Spring Boot2.3.0呢???答案是:不支持,不支持,不支持。对于Spring Boot这种跨版本升级,一般是有阻断性变化,所以它的机油SC适配上还需要时间。


这不,官方就公布了Spring Cloud支持Spring Boot 2.3.x的里程碑时间点,也就是它的Hoxton.SR5版本发布时间点:


image.png


Spring Cloud里程碑地址:https://github.com/spring-cloud/spring-cloud-release/milestones


升级建议:等等


至少要等到2020-5-26号发布后嘛,至少要等到Spring Boot2.3.x跑一段时间之后嘛,坐在第二排看戏,才是最舒服最稳妥的。


总结


这是A哥奉给大家的,对Spring Boot2.3.0版本新特性的介绍,希望对你有些帮助。有些人可能会这么说:反正我现在也不用这个版本,没有必要去了解它。其实非也,如果你2.3.0不去了解,2.4.0不去了解,倘若某一天你突然要从2.0.0版本过度过来使用2.5.x版本了,你会“浑身不舒服”的。你品下,是不是这么个道理呢?

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
12月前
|
负载均衡 Java API
Spring Cloud是什么及基本特性都有哪些?
Spring Cloud 是用于构建健壮云应用的框架,包含多个子项目。其核心组件如Eureka(服务注册与发现)、Hystrix(熔断器)、Ribbon(负载均衡)等,帮助开发者快速实现微服务架构。Spring Cloud 提供了服务注册与发现、分布式配置、路由、断路器等功能,简化了微服务开发与管理。本文将重点介绍服务注册与发现及分布式配置两大特性。
660 5
|
7月前
|
Java 数据库连接 API
Java 8 + 特性及 Spring Boot 与 Hibernate 等最新技术的实操内容详解
本内容涵盖Java 8+核心语法、Spring Boot与Hibernate实操,按考试考点分类整理,含技术详解与代码示例,助力掌握最新Java技术与应用。
215 2
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
282 4
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
215 0
|
安全 前端开发 Java
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择。依赖注入使对象管理交由Spring容器处理,实现低耦合高内聚;AOP则分离横切关注点如事务管理,增强代码模块化。Spring还提供MVC、Data、Security等模块满足多样需求,并通过Spring Boot简化配置与部署,加速微服务架构构建。掌握这些核心概念与工具,开发者能更从容应对挑战,打造卓越应用。
203 1
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
2921 17
Spring Boot 两种部署到服务器的方式
|
11月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
473 0
|
监控 Java 应用服务中间件
SpringBoot是如何简化Spring开发的,以及SpringBoot的特性以及源码分析
Spring Boot 通过简化配置、自动配置和嵌入式服务器等特性,大大简化了 Spring 应用的开发过程。它通过提供一系列 `starter` 依赖和开箱即用的默认配置,使开发者能够更专注于业务逻辑而非繁琐的配置。Spring Boot 的自动配置机制和强大的 Actuator 功能进一步提升了开发效率和应用的可维护性。通过对其源码的分析,可以更深入地理解其内部工作机制,从而更好地利用其特性进行开发。
508 6
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
678 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
913 2