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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
简介: Spring Boot 2.3.0发布:优雅停机等新特性一览(中)

删除不推荐使用的类/方法/属性


在该版本中,Spring Boot删除了2.2版本中不推荐使用的大多数类,方法和属性。请确保升级之前没有再调用不推荐使用的方法。针对于此,下面我举例那些在2.2版本中还“活着”但被弃用(标记有@Deprecated注解),但在2.3版本中已完全删除的类、方法、属性:


  1. 方法BindResult#orElseCreate
  2. 属性LoggingApplicationListener#LOGFILE_BEAN_NAME
  3. 类JodaDateTimeJacksonConfiguration
  4. 类JestAutoConfiguration



即使如此,有些虽然在2.2就已被弃用,但在2.3.0还存在的,如:ConfigurationBeanFactoryMetadata、CompositeHealthIndicator


配置文件位置支持通配符


Spring Boot现在在加载配置文件时支持通配符位置。默认情况下,jar外部的config/*/位置是被支持的。当配置属性有多个源时,比如在Kubernetes这样的环境中非常有用。


特点说明:jar包外,jar包外,jar包外,放在内部(比如resource目录下是没有此特针的),下面有示例证明


简单的说,如果你有MySql的配置和Redis配置的话,你就可以把他们分开来放置,隔离性更好目录也更加清晰了:


  • mysql:/config/mysql/application.properties
  • redis:/config/redis/application.properties


工程目录如下截图:


image.png


运行程序:


public static void main(String[] args) {
    ConfigurableApplicationContext context = SpringApplication.run(Boot23Demo1Application.class, args);
    ConfigurableEnvironment environment = context.getEnvironment();
    System.out.println(environment.getProperty("mysql.name"));
    System.out.println(environment.getProperty("redis.name"));
    context.close();
}


结果输出:

mysql
redis


但如果你把文件放在jar包内,形如这样,是没有效果的:image.png


输出为null null,因此使用时需要稍加注意哈~


web下的日期转换支持配置


现在时间/日期的转换现在可以通过属性进行配置了,这补充了对格式化日期值的现有支持。比如对于MVC和WebFlux来说,它们的配置项分别如下:


  • spring.mvc.format.date
  • spring.mvc.format.date-time
  • spring.mvc.format.time
  • spring.webflux.format.date
  • spring.webflux.format.date-time
  • spring.webflux.format.time


这个怎么用,相信大家都会,一看就知道什么含义。但是,但是,但是:请一定做好充分测试,并且充分考虑兼容性,因为你这动的是接口层的东西~


其它新特性


更改某些依赖最低版本要求


主要体现在如下两处:

  1. 如果你使用Gradle构建,支持Gradle 6.3+。当然喽5.6.x也支持,只是标记为@Deprecated不推荐使用了
  2. 如果你使用Jetty嵌入式容器,版本要求是Jetty 9.4.22+



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
安全 前端开发 Java
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择。依赖注入使对象管理交由Spring容器处理,实现低耦合高内聚;AOP则分离横切关注点如事务管理,增强代码模块化。Spring还提供MVC、Data、Security等模块满足多样需求,并通过Spring Boot简化配置与部署,加速微服务架构构建。掌握这些核心概念与工具,开发者能更从容应对挑战,打造卓越应用。
35 1
|
2天前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
9 2
|
1月前
|
安全 Java 开发者
强大!Spring Cloud Gateway新特性及高级开发技巧
在微服务架构日益盛行的今天,网关作为微服务架构中的关键组件,承担着路由、安全、监控、限流等多重职责。Spring Cloud Gateway作为新一代的微服务网关,凭借其基于Spring Framework 5、Project Reactor和Spring Boot 2.0的强大技术栈,正逐步成为业界的主流选择。本文将深入探讨Spring Cloud Gateway的新特性及高级开发技巧,助力开发者更好地掌握这一强大的网关工具。
112 6
|
2月前
|
存储 Java 开发者
使用Spring Boot 3.3全新特性CDS,启动速度狂飙100%!
【8月更文挑战第30天】在快速迭代的软件开发周期中,应用的启动速度是开发者不可忽视的一个重要指标。它不仅影响着开发效率,还直接关系到用户体验。随着Spring Boot 3.3的发布,其中引入的Class Data Sharing(CDS)技术为应用的启动速度带来了革命性的提升。本文将围绕这一全新特性,深入探讨其原理、使用方法以及带来的实际效益,为开发者们带来一场技术盛宴。
61 2
|
2月前
|
XML Java 应用服务中间件
深入探索Spring Boot框架的核心特性
Spring Boot 是一款基于Spring框架的开源框架,旨在简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式(默认配置)来简化整个构建过程。
46 11
|
3月前
|
Java 应用服务中间件 开发者
Spring Boot 2.x新特性有哪些?
【7月更文挑战第16天】Spring Boot 2.x新特性有哪些?
46 1
|
4月前
|
前端开发 安全 Java
Spring EL表达式:概念、特性与应用深入解析
Spring EL表达式:概念、特性与应用深入解析
|
4月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
49 2
|
4月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
53 2
|
4月前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
272 1
下一篇
无影云桌面