Spring Boot 3.0 已经就绪,您准备好了么?
Java 微服务开发框架王者 Spring
2014 年的 4 月,Spring Boot 1.0.0 正式发布。距离 1.0 版本的发布已经过去了 9 年多的时间,如今 Spring Boot 已经被 Java 开发者广泛使用,正如 JRebel 的 2022 年开发者生产力报告中提到的那样,Spring Boot 已经作为 Java 开发微服务首选的框架,并且占有主导位置。
Spring Boot 核心特性
· 遵循约定大于配置的核心思想。
· 可以完全不使用 XML 配置,只需要使用自动配置以及 Java Config 方式即可。
· 内嵌 Servlet 容器,降低了对环境的依赖程度,以及大大减少了学习成本。
· 依赖管理,Spring Boot 提供 starter 机制,从而大大简化了 Maven 配置。
· 应用的可观测性,Spring Boot 提供了对当前应用可观测的解决方案。
· 对 Spring 自动装配,Spring Boot 会为 jar 包的类进行自动对 Bean 的装配。
从 2014 年的 Spring Boot 1.0 版本到 2018 年的 2.0 版本,再到 2022 年 11 月的 3.0 版本。每一次大版本的升级都会带来新的特性和新的功能。而对于 Spring Boot 3.0 可以称之为 Spring 新一代框架的开始,同时也是 Spring 下一个十年的新开端。接下来让我们了解下 Spring Boot 3.0。
Spring Framework 6.0 和 Spring Boot 3.0
2022 年 11 月,Spring Framework 6.0 版本正式发布,Spring 迎来了重大的提升。升级内容包括以Java 17 作为基线,Jakarta EE9+、AOT 的支持等。
在 Spring Framework 6.0 版本正式发布的一周后,Spring Boot 3.0 版本正式发布,同时带来了许多新的特性,整体来看主要的亮点如下图所示:
1.Java 版本的提升,Java 8 不再支持,已 Java 17 作为基线,同时以 Spring Framework 6.0 为基石。
2.通过 Spring Native,Spring 可以不再依赖 Java 虚拟机,而是采用 GraaIvm 方式将 Spring 的应用程序编译成原生镜像的方式,从而提供了一种新的方式来部署 Spring 应用,与 Java 虚拟机相比,native image 可以为许多类型的工作负载提供更经济、更可持续的托管。这些包括微服务、非常适合容器的功能工作负载和 Kubernetes。同时对业务代码层面是几乎没有修改的,并且支持 Java 和 Kotlin。使用 native image 这种方式具备一些关键优势,如即时启动、即时峰值性能和减少内存消耗。
3.可观察性的提升,基于 Micrometer 的内置可观测性。
4.从 Java EE 到 Jakarta EE9,包名称空间从 javax.* 到 jakarta.*.。因此,无论何时直接使用 JavaEE 中的类,我们都需要调整代码中的所有导入。
总体来说,相对于 Spring 2.x 的版本,Spring Boot 3.0 优势如下:
· 更快的启动、快速响应扩容需求、更快地响应用户请求。
· 支持 Native 方式,更适合本地云计算,尤其是无服务器计算,节省资源成本。
· 更少的内存需求。
· 提高安全性以及可观察性。
Spring Boot 2.7 社区开源版本即将停止支持
Spring Boot 2.0 是 Spring Boot 2.x 系列的第一个版本,它于 2018 年 2 月发布。2.7 则作为Spring Boot 2.x 系列最后的一个大版本。从 2018 年 2 月首次发布 2.x 系列版本到至今已经过去了整整四年多的时间,随着 2022 年 11 月发布的 Spring Framework 6 和 Spring Boot 3.0,对于 Spring Boot 2.7 的开源支持也将于 2023 年 11 月停止。
对于 Spring Boot 2.7 版本开源支持的即将停止,有可能会带来如下的潜在风险:
· 由于缺乏持续的 Bug 修补、安全更新,应用程序可能存在程序漏洞。
· 后续可能存在不合规,安全风险。
· 后续增加了开发人员修复 OSS 错误的工作量。
如果您想对现有的版本(例如 Spring Boot 2.7 或者更早的版本)进行升级,并尝试使用 Spring Boot 3.0 及以上版本,以下的提示可能会帮助到您
· 建议您首先将现有 Spring Boot 的项目尽量迁移到 Spring Boot 2.7 版本(如果已经是 Spring Boot 2.7 版本请忽略)。
· 检查不推荐使用的代码的使用情况和遗留配置文件的处理情况(它将随新的主要版本一起删除)。
· Java 版本升级到 Java 17。
· 检查第三方项目是否有 Jakarta EE 9 兼容版本。
(更多信息可参考:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide)
可以看到的是,对于版本的升级,Spring 官方给出了一些建议和指导。这些建议和指导可以很好的帮助我们,并且减少版本升级过程中带来的问题。那么作为 Spring 生态系统管理者的 VMware 在无论是版本升级,还是 Spring Boot 3.0 使用上的最佳实践又是什么呢? 接下来让我们了解下 VMware Spring 的解决方案。
VMware Spring 解决方案
VMware Spring 解决方案整体可以分为四大部分:
Spring 咨询和 Spring Solution Architect
为 Spring 生态系统提供全面的咨询服务。无论您在 Spring 之旅中处于何处,我们都将帮助您释放 Spring 应用程序的全部潜力。
1.升级至 Spring 的最新版本
告别繁琐的手动升级,采用精简的方法,为您的组织节省宝贵的时间和资源。VMware Tanzu Labs 通过确保无缝迁移到最新版本,降低了运行过时版本的 Spring Boot 的风险。同时确保您的应用程序经得起未来考验、安全并符合行业标准。
2.设计、开发或现代化 Spring 应用程序
使用世界上最流行的 Java 框架加快交付您的业务所需的应用程序。经验最丰富的 Spring 开发团队 VMware Tanzu Labs 通过数十年的实践完善了我们的产品开发流程。我们的专家将与您的开发人员合作,加速交付或构建和部署新的 Spring 应用程序,充分利用 Spring 的优势。
3.将现有的应用程序组合迁移到 Spring
将您的应用程序组合转移到世界上最流行的 Java 框架中,并充分利用 Spring 所提供的最佳功能。我们在 VMware Tanzu Labs 的顾问将与您的组织合作,评估您的应用程序环境,发现可能的障碍,并为成功的迁移过程制定路线图。
VMware Spring Runtime
VMware Spring Runtime 为您提供了对 Spring 生态系统的全天候商业化支持,通过与专家交流,释放 Spring® 生态系统的全部潜力。包括软件包下载、商业技术支持、产品提供等。
对 Spring boot 2.7 的版本,虽然开源社区会于 2023 年 11 月停止支持,但还是 VMware 会通过 VMware Spring Runtime 的开源软件商业化支持,支持客户的 Spring Boot 2.7 版本一直延续到 2025 年 2 月。
详细信息可参考: https://tanzu.vmware.com/spring-runtime。
Spring 学院
通过大量在线课程的学习以及论坛,以及大量的动手实验,使开发者深入了解 Spring 的各种特性,同时可以参加 Spring 专业技术认证的考试。详细信息可参考: https://spring.academy。
参考链接:
1.jrebel-2022-java-developer-productivity-report
2.https://spring.io/projects/spring-boot#support
3.https://tanzu.vmware.com/spring-consulting
4.https://tanzu.vmware.com/spring-runtime
5.https://spring.academy
6.https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide
内容来源|公众号:VMware 中国研发中心
有任何疑问,欢迎扫描下方公众号联系我们哦~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
上新啦!请查收云原生虚拟数仓 PieCloudDB 十月动态
PieCloudDB Database 最新动态 PieCloudDB 压缩效率得到提升 为了节省存储空间,降低用户存储费用,PieCloudDB 在压缩率上不断优化,包括: 对 HLL(HyperLogLog)支持游程编码(Run Length Encoding) 支持 ZSTD(Zstandard)为默认压缩算法 支持 Dict Encoding、Delta Encoding 等编码方法,降低文件大小 PieCloudDB 将在未来的版本中不断迭代,帮助用户降本增效。 支持在外部连接工具 PieProxy 进行白名单配置 PieCloudDB 云上云版支持在外部连接工具 PieProxy 上配置 IP 白名单和用户白名单,来限制外部接入功能的访问范围。IP 白名单和用户白名单将取交集形成生效范围。 配置白名单后,非白名单范围内的 IP 或用户无法进行外部接入,IP 白名单使用 CIDR 表示法(如 192.168.1.0/24)来表示一个 IP 地址范围,支持 IPv4 和 IPv6 混填。 费用中心升级 PieCloudDB 云上云版费用中心升级。组织账户区分了赠送金额和充值金额...
-
下一篇
可观测性实战:快速定位 K8s 应用故障
故障发生在2023春节前两天,DeepFlow 团队内部访问工单系统出现问题,影响了所有北京区的同事,这篇文章将详细记录如何利用 DeepFlow 定位到对这次问题根因(网关 MSS 误变更导致报文大于 MTU,大数据报文被丢弃)。 欢迎预约由 “云原生社区” 主办,云杉网络发起的主题为《银行数字化转型可观测性实践》直播。 01、背景介绍 工单系统是 DeepFlow 团队自主研发的一个跟踪工单的内部工具,部署在阿里公有云的容器服务(ACK)中,工单系统通过 Ingress 的方式对外提供服务,办公区与阿里云通过 VPN 连接,因此办公区可以直接使用域名访问工单系统。在《K8s 服务异常排障过程全解密》[1]文中对 K8s 访问方式做过总结,工单系统是比较典型的方式三的访问形式 集群外客户端通过 Ingress 访问集群内服务 下图是通过 DeepFlow 自动绘制的访问拓扑图,可以看出北京和广州办公区都是通过 Ingress 的形式来访问工单的入口服务 (ticket_web)。工单系统部署在基础服务的容器集群上,此容器集群所有的 Node 上都已经部署了 deepflow-agen...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- MySQL数据库在高并发下的优化方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,8上快速安装Gitea,搭建Git服务器