Spring 那么多子项目,谁才是真正的一哥?
作者 | 如梦技术
一、谁是 Spring 一哥?
今年排名前三的项目依旧保持不变。大约 75% 的受访者都在使用 Spring Data、Spring Security 和 Spring WebMVC。然而,这些并不是唯一被大量使用的 Spring 模块。大约三分之一的受访者在使用 Spring Kafka、Spring Batch、Spring Cloud、Spring WebFlux 和 Spring Integration,而 25% 的受访者使用 Spring Session、Spring LDAP、Spring AMQP 和 Spring Cloud Gateway。(稍后会详细介绍 Spring Cloud Gateway)
二、Data, data 无处不在
应用程序的好坏取决于它们的数据。复杂的应用程序可能会使用多个数据源甚至跨多个云。Spring Data 使使用数据访问技术、关系和非关系数据库、map-reduce 框架和基于云的数据服务变得容易——以及特定技术的子项目。
Spring Data JPA,可以轻松实现 Java Persistence 基于 API 的存储库在子项目列表中名列前茅,是 79% 的开发者的首选。Spring Data JDBC(Java 数据库连接),它定义了用于连接和查询几乎所有关系数据库的 API,以 74% 排名第二。非关系型数据库的几个模块也很受欢迎,包括 MongoDB (46%)、Redis (37%) 和 Elasticsearch (31%)。
三、Kotlin 取得新进展
Spring 支持三种编程语言:Java、Groovy、和 Kotlin,Kotlin 一种面向对象的语言,包括许多函数式编程的思想,于 2016 年首次引入。我们总是想了解什么是新技术更受欢迎,Kotlin 似乎是赢家。
如果您正在学习Spring Boot,推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/
超过 40% 的受访者已经在使用 Kotlin 创建 Spring 项目(18% 正在广泛使用它),以及额外的 18% 计划使用它。十分之九的人表示看好 Kotlin,在我们的调查所涵盖了15项新技术中,这是所有人中最积极的反馈。
四、API 是最重要的 Spring 功能
高达 97% 的人同意“API 对我们的 Spring 开发工作至关重要。” 为了了解有关 API 使用的更多信息,我们为内部消费者和外部消费者拆分了 API。这些是今年排名第一和第三的用例。商业应用程序跌至第二位。
由于内部 API 已成为如此重要的用例,了解人们正在使用哪些内部 API 市场以及他们如何发现和试用 API 将会很有趣。明年寻找有关这些主题的问题。Spring Cloud Gateway 提供了一种对开发人员友好的方式来路由、保护和监控 API 请求。对这个开源项目的兴趣正在飙升,同时对我们的商业支持版本 Tanzu Spring Cloud Gateway 的兴趣也在飙升。
五、超 80% 的人正在使用现代应用架构
Spring 的好处之一是它可以帮助开发人员跟上现代技术的步伐,因此他们不必不断的学习新的语言或框架;86% 的人使用 Spring 的现代架构风格——几乎每个人 (94%) 都使用微服务,而 35% 使用 Reactive,19% 使用 serverless.。
六、Spring Native
当我们询问 Spring 有哪些地方可以改进时,有两项倍受关注:减少启动时间和优化内存使用。通过将 Spring 应用程序编译为原生可执行文件,Spring Native 解决了这些挑战——而且它已经准备好起飞。
6.1 为什么犹豫?
采用 Spring Native 的最大障碍是:仍处于测试阶段 (59%) 和 GraalVM 原生映像技术需要成熟 (46%)。92% 的利益相关者对 GraalVM 持积极态度,这一事实表明社区相信该技术将迅速成熟。
6.2 前途一片光明
Spring Native 于 2021 年 3 月进入公测阶段。尽管 Spring Native 仍处于测试阶段,但 65% 已经计划部署它:29% 在未来 12 个月内,另外 29% 在 1-2 年时间范围内,还有 7% 计划 5 年内。
七、Spring 正在 K8s 上起飞
在 Kubernetes 上运行容器化 Spring 应用程序的组织数量从去年的 44% 飙升至 57%。这 13 点跃升与整个行业对 Kubernetes 使用增长保持一致。
如果您正在学习Spring Boot,推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/
十分之九的受访者希望看到对 Kubernetes 更好的支持,包括 Kubernetes 原生服务发现和配置管理 (67%)、简化的 Spring Boot 应用程序容器 image 流水线(57%) 和 Spring 应用程序的应用程序管理 (52%)。
八、总结
2021 年是 Spring 继续蓬勃发展的一年,61% 接受调查的组织表示 Spring 是他们的主要或唯一开发平台,高于去年 52%。惊人的达到 95% 的人赞同 Spring Boot 对生产力有巨大的积极影响,90% 的人表示 Spring 的影响比其他 Java 平台更大。Stack Overflow 和 Spring.io 再次成为 Spring 社区的主要信息来源。我们将全年工作于 Spring.io,以解决社区对网站可用性和内容可发现性的反馈。
Spring 释放的巨大生产力的关键是许多有助于加速代码交付的 Spring 项目。例如:近 80% 的组织使用 Spring Data——它与 MongoDB、Redis 和 Elasticsearch 在内的领先数据技术集成。如果你正在寻找合适的 Spring 项目来加速你的开发工作,那么了解你的同行根据项目成熟度和文档质量做出决策可能会有所帮助。在使用现代架构的 86% 的受访者中,94% 使用微服务,35% 使用 Reactive,19% 使用 Serverless。
绝大多数 (97%) 的调查受访者表示 API 对他们的开发工作至关重要。虽然 JSON over HTTP 和 OpenAPI 占主导地位,令人惊讶的是已经有 20% 在使用带有 GraphQL 的 API。如果你的组织看到 API 快速增长,请查看 Spring Cloud Gateway 和 API Portal 以帮助简化 API 管理。Spring 社区中的每个人似乎都知道 Spring Native。因为它仍处于测试阶段,很少有人使用它,但 Spring Native 处于有利地位,可以在不久的将来快速使用。
凭借其庞大的生态系统和良好的业绩记录,Spring 仍然是 企业 Java 的首选平台,未来还有更多。这项年度调查是宝贵的资源,因为我们与 Spring 社区合作,优先考虑新的创新领域并确定和解决问题。感谢你花时间阅读本报告。如果你也参与了调查,感谢你的反馈!
往期推荐
最近有很多人问,有没有读者交流群,想知道怎么加入。加入方式很简单,有兴趣的同学,只需要点击下方卡片,回复“加群“,即可免费加入我们的高质量技术交流群!
点击阅读原文,送你免费Spring Boot教程!