VMware 发布了一份对 Spring 开发人员的 2022 年度调查,涵盖 1421 名活跃的 Spring 专业人士。探讨了微服务、反应式和无服务器等现代架构的采用情况;包括对模块化单体的检查,以及哪些新技术在这一领域中得到了发展。还调查了 Spring 社区处理软件升级的情况、了解常见的痛点,并确定了学习 Spring 功能和 Spring 相关技术的主要途径。
报告指出,API 是主要用例。许多架构师和开发人员都将 API 作为其架构的核心部分,Spring 社区也是如此。自 2020 年以来,该社区选择 exposing API(内部和外部)作为 Spring 的最流行用途。随着现代和云原生应用的增长,使用 Spring 进行 API 开发的情况还在继续增加。
SOAP Web 服务占 Spring 实现的 API 的 30%,高于前一年的 28%。基于 XML 的 SOAP Web 服务对于大多数开发人员来说早已被 REST API 和 JSON 以及基于 JSON 的 OpenAPI(曾经称为 Swagger)所取代;但尽管 plain JSON(81%)和 OpenAPI(61%)遥遥领先,30% 的占比表明 SOAP 仍有着较高的粘性。
Spring 开发者对 Project Loom (Java 的轻量级线程) 和 Spring Native 的热情都很高。Project Loom 目前尚处于预览阶段,它将虚拟线程引入 Java,还可以减少应用程序的内存占用。报告称,在听说过 Project Loom 的人中,几乎所有人(90%)都对这项技术持积极态度,30% 的人计划使用它。不过报告也补充到,“Loom 已经接近其炒作周期的顶峰”。
43% 的受访者尝试过 Spring Native,79% 的人打算在 2 年内部署 Spring Native 应用程序;关键动机在于节省托管成本,并在占用空间较小的地方使用容器和 Kubernetes 的原生编译。
Spring 团队花了很多时间来确保 Spring 在 Kubernetes 上运行良好。自 2020 年开始调查以来,Kubernetes 已成为运行 Spring 应用程序的主要平台。
在所面临的挑战中,反馈最多的是“陡峭的学习曲线”,今年这一比例上升至 26%。此外,Spring 开发人员还为诸如“难以理解所有组件的作用”和“缺乏有关如何一起使用模块的信息”等问题而苦恼。
更多详情可查看完整报告。