SpringBoot3与SpringBoot2的区别

文章目录

  • 1、JDK环境
  • 2、Spring Framework版本
  • 3、主要变化和新特性
    • 3.1 配置变化
    • 3.2 GraalVM
    • 3.3 安全性改进
    • 3.4 性能优化
      • 3.4.1 启动时间
      • 3.4.2 内存使用
    • 3.5 改进的依赖管理
    • 3.6 全新启动器
    • 3.7 Kotlin支持

SpringBoot3与SpringBoot2的区别

1、JDK环境

SpringBoot3最低要求JDK17
SpringBoot2最低要求JDK8

2、Spring Framework版本

SpringBoot 2: Spring Framework 5
SpringBoot3: Spring Framework 6

3、主要变化和新特性

3.1 配置变化

支持使用 YAML 文件进行配置,并且对配置属性进行了更严格的校验和提示。

3.2 GraalVM

Spring Boot 3支持使用GraalVM将应用程序编译成本地可执行的镜像文件,这可以显著提升启动速度、峰值性能以及减少内存应用。与传统的JVM运行方式相比,GraalVM的即时编译器和AOT编译器可以显著提高应用程序的性能。

3.3 安全性改进

Spring Boot 3.x 在安全性方面进行了多项改进。例如,引入了更强大的密码存储机制、更灵活的安全配置选项,以及对 OAuth 2.1 的支持。这些改进使得 Spring Boot 应用在处理安全问题时更加便捷和可靠。相比之下,Spring Boot 2.x 的安全特性虽然已经很强大,但在某些方面仍然需要手动配置和调整。

3.4 性能优化

3.4.1 启动时间

Spring Boot 3.x 通过多种方式优化了应用的启动时间。除了支持 GraalVM 原生镜像外,还对 Spring 核心进行了优化,减少了启动过程中的开销。这对于微服务和短生命周期的应用尤其重要。相比之下,Spring Boot 2.x 的启动时间虽然也已经优化了很多,但仍有提升空间。

3.4.2 内存使用

Spring Boot 3.x 进一步优化了内存使用,通过更高效的内存管理和资源分配机制,减少了应用的内存占用。这对于在资源受限环境中运行的应用非常有帮助。相比之下,Spring Boot 2.x 的内存管理虽然已经比较成熟,但在某些高并发和高负载场景下可能仍会遇到瓶颈。

3.5 改进的依赖管理

Spring Boot 3改进了对第三方依赖的管理,使依赖关系更加清晰和易于管理。

3.6 全新启动器

提供了若干全新启动器,如spring-boot-starter-rsocket(RSocket支持)和spring-boot-starter-data-r2dbc(响应式关系型数据库)等,以简化特定功能的集成。

3.7 Kotlin支持

完全支持Kotlin 1.5,允许开发人员无缝使用Kotlin的最新语言特性来开发Spring Boot应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前后端时间转换的那些常见问题及处理方法

在现代的Web开发中,前后端分离的架构已经成为主流,尤其是在Spring Boot和Vue.js的组合中。开发者在这种架构下经常遇到的一个问题就是如何处理时间的转换和显示。前端和后端对时间的处理方式不同,可能会导致时间在传递过程中出现问题&#xf…

基于TCP发送北斗消息给船舶设备终端

文章目录 引言I 自定义动态数据交换协议信息交换接口通信格式II Netty实现TCP客户端III Java 原始API实现TCP客户端知识扩展: 基于Netty的定位数据平台通信协议定位方式移动定位设备see also引言 需求:发送北斗消息给船舶设备终端 动态信息交换接口采用TCP自定义协议实现数据…

无线麦克风哪款好用,手机领夹麦克风哪个牌子好,麦克风推荐

随着短视频与直播行业的蓬勃发展,无线领夹麦克风市场迎来了前所未有的繁荣。品牌如罗德、大疆、西圣等麦克风品牌凭借卓越的技术实力与品牌影响力占据了市场的主导地位,其中西圣更是凭借其高性价比和用户口碑,稳居行业口碑品牌前列。但在这光…

Qt 基础按钮布局管理

cpp public: Content(QWidget *parent0); ~Content(); QStackedWidget *stack; QPushButton *AmendBtn; QPushButton *CloseBtn; Baseinfo *baseInfo; Contact *contact; Detail *detail; // 打开 "Content.cpp" 文件,添加如下代码: Content:…

调整兰德系数-评估聚类效果的指标

调整兰德系数(Adjusted Rand Index, ARI)是一种用于评估聚类结果与真实标签之间相似度的指标。它在传统兰德系数(Rand Index, RI)的基础上进行了调整,考虑了随机聚类的期望值,因此能够更公平地评估聚类结果…

Chainlit集成Langchain并使用通义千问实现文生图网页应用

前言 本文教程如何使用通义千问的大模型服务平台的接口,实现图片生成的网页应用,主要用到的技术服务有,chainlit 、 langchain、 flux。合利用了大模型的工具选择调用能力。实现聊天对话生成图片的网页应用。 阿里云 大模型服务平台百炼 API…

最新融合多模态的理解和生成的大一统transform架构,show-o模型部署

Show-o是由字节跳动和新加坡国立大学Show Lab共同研发的一个多模态大模型,统一了多模态理解和生成。 Show-o的创新之处在于它将自回归和离散扩散建模相结合,以适应不同和混合模态的输入和输出。 Show-o模型的架构基于预训练的大型语言模型(…

web基础之SSRF

1、内网访问 题目提示:访问位于127.0.0.1的flag.php;直接利用ssrf漏洞访问?url127.0.0.1/flag.php 2、伪协议读取文件 (1)题目提示:尝试去读取一下Web目录下的flag.php吧 (2)什么是伪协议&a…

【星海出品】go语言环境兼install

官网 https://golang.google.cn/dl/ go的安装包下载地址 https://go.dev/dl/ set GO111MODULEon //是否以Go modules的模式运行项目 auto,on,off set GOARCHamd64 //目标可执行程序操作系统构架 包括 386,amd64,arm set GOBIN //项目的第三方可执行文件目…

【鸿蒙】HarmonyOS NEXT星河入门到实战6-组件化开发-样式结构重用常见组件

目录 1、Swiper轮播组件 1.1 Swiper基本用法 1.2 Swiper的常见属性 1.3 Swiper的样式自定义 1.3.1 基本语法 1.3.2 案例小米有品 2、样式&结构重用 2.1 Extend:扩展组件(样式、事件) 2.2 Styles:抽取通用属性、事件 2.3 Builder:自定义构建函数(结构、样式、事…

Android 11(API 级别 30)及以上版本中,将Bitmap保存到设备上

调用 saveBitmapToMediaStore(getContentResolver(),bitmap,“图片名”,mimeType); 参数解析: Bitmap myBitmap ...; // 这里应该是你获取或创建Bitmap的代码 private String mimeType "image/jpeg"; // 或者"image/png",取决于…

无人机视角-道路目标检测数据集 航拍 8600张 voc yolo

数据集名称: 无人机视角-道路目标检测数据集 数据集规模: 图像数量:8600张拍摄方式:航拍(使用无人机拍摄)标注格式:支持VOC和YOLO格式 数据集内容: 该数据集由无人机从空中拍摄的…

Android10源码刷入Pixel2以及整合GMS

一、ASOP源码下载 具体可以参考我之前发布的文章 二、下载相关驱动包 这一步很关键,关系到编译后的镜像能否刷入后运行 下载链接:Nexus 和 Pixel 设备的驱动程序二进制文件 如下图所示,将两个驱动程序上传到Ubuntu服务器,并进行解压,得到两个脚本: 下载解压后会有两…

5.qml 如何管理好控制台打印输出

c 在工程文件里面加入,这个只是禁用了c端的打印 DEFINES QT_NO_WARNING_OUTPUT DEFINES QT_NO_DEBUG_OUTPUT qml 在pro里面添加 #CONFIG - declarative_debug #CONFIG - qml_debug DEFINES QT_QML_DEBUG_NO_WARNING禁用qml打印,在main.cpp中引入 qputenv…

git为不同的项目设置不同的提交作者

方法1:找到项目的.git文件夹打开 打开config在下面添加自己作者信息 [user]name 作者名email 邮箱方法2:直接在.git文件夹设置作者名(不使用–global参数) git config user.name "xxxxx"如果想要修改之前提交的…

【idea-安装】

JetBrains官⽹ : https://www.jetbrains.com/ 1.下载idea安装包,下载旧一些的版本,避免新版本的不稳定。 下载下来的安装包是exe格式的,直接点击运行。 点击Next 2.选择要下载的位置,点击下一步。 3.选择⽣成快捷⽅式和建⽴⽂件…

uniapp数据缓存和发起网络请求

数据缓存 uni.onStorageSync同步的方式将数据存储到本地缓存 <template><button click"onStorageSync()">存储数据</button> </template><script setup>const onStorageSync () > {// 存储数据uni.setStorageSync(username, 张三)…

Liunx常用指令

1. 文件和目录管理 ls 用法&#xff1a;ls [选项] [文件/目录]示例&#xff1a;ls -l&#xff08;以长列表格式显示&#xff09;&#xff0c;ls -a&#xff08;显示所有文件&#xff0c;包括隐藏文件&#xff09;。 cd 用法&#xff1a;cd [目录]示例&#xff1a;cd ..&#xf…

刷题活动(旋转和翻转)

前两天打了CCPC网络赛&#xff08;让打老实了&#xff09;&#xff0c;现在认识到了刷题的重要性&#xff0c;于是我开创了这么个栏目&#xff0c;我们一起刷一下题。 还是在ACwing网站上刷题 旋转和翻转 首先&#xff0c;申一下题目&#xff0c;输入一个数字 n &#xff0c;来…

【堆的应用--C语言版】

前面一节我们都已将堆的结构&#xff08;顺序存储&#xff09;已经实现&#xff0c;对树的相关概念以及知识做了一定的了解。其中我们在实现删除操作和插入操作的时候&#xff0c;我们还同时实现了建大堆&#xff08;小堆&#xff09;的向上&#xff08;下&#xff09;调整算法…