Spring 那么多子項目,誰才是真正的一哥?

作者 | 如夢技術(shù)
一、誰是 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 無處不在
應用程序的好壞取決于它們的數(shù)據(jù)。復雜的應用程序可能會使用多個數(shù)據(jù)源甚至跨多個云。Spring Data 使使用數(shù)據(jù)訪問技術(shù)、關(guān)系和非關(guān)系數(shù)據(jù)庫、map-reduce 框架和基于云的數(shù)據(jù)服務變得容易——以及特定技術(shù)的子項目。
Spring Data JPA,可以輕松實現(xiàn) Java Persistence 基于 API 的存儲庫在子項目列表中名列前茅,是 79% 的開發(fā)者的首選。Spring Data JDBC(Java 數(shù)據(jù)庫連接),它定義了用于連接和查詢幾乎所有關(guān)系數(shù)據(jù)庫的 API,以 74% 排名第二。非關(guān)系型數(shù)據(jù)庫的幾個模塊也很受歡迎,包括 MongoDB (46%)、Redis (37%) 和 Elasticsearch (31%)。

三、Kotlin 取得新進展
Spring 支持三種編程語言:Java、Groovy、和 Kotlin,Kotlin 一種面向?qū)ο蟮恼Z言,包括許多函數(shù)式編程的思想,于 2016 年首次引入。我們總是想了解什么是新技術(shù)更受歡迎,Kotlin 似乎是贏家。
如果您正在學習Spring Boot,推薦一個連載多年還在繼續(xù)更新的免費教程:http://blog.didispace.com/spring-boot-learning-2x/
超過 40% 的受訪者已經(jīng)在使用 Kotlin 創(chuàng)建 Spring 項目(18% 正在廣泛使用它),以及額外的 18% 計劃使用它。十分之九的人表示看好 Kotlin,在我們的調(diào)查所涵蓋了15項新技術(shù)中,這是所有人中最積極的反饋。

四、API 是最重要的 Spring 功能
高達 97% 的人同意“API 對我們的 Spring 開發(fā)工作至關(guān)重要?!?為了了解有關(guān) API 使用的更多信息,我們?yōu)閮?nèi)部消費者和外部消費者拆分了 API。這些是今年排名第一和第三的用例。商業(yè)應用程序跌至第二位。
由于內(nèi)部 API 已成為如此重要的用例,了解人們正在使用哪些內(nèi)部 API 市場以及他們?nèi)绾伟l(fā)現(xiàn)和試用 API 將會很有趣。明年尋找有關(guān)這些主題的問題。Spring Cloud Gateway 提供了一種對開發(fā)人員友好的方式來路由、保護和監(jiān)控 API 請求。對這個開源項目的興趣正在飆升,同時對我們的商業(yè)支持版本 Tanzu Spring Cloud Gateway 的興趣也在飆升。
五、超 80% 的人正在使用現(xiàn)代應用架構(gòu)
Spring 的好處之一是它可以幫助開發(fā)人員跟上現(xiàn)代技術(shù)的步伐,因此他們不必不斷的學習新的語言或框架;86% 的人使用 Spring 的現(xiàn)代架構(gòu)風格——幾乎每個人 (94%) 都使用微服務,而 35% 使用 Reactive,19% 使用 serverless.。
六、Spring Native
當我們詢問 Spring 有哪些地方可以改進時,有兩項倍受關(guān)注:減少啟動時間和優(yōu)化內(nèi)存使用。通過將 Spring 應用程序編譯為原生可執(zhí)行文件,Spring Native 解決了這些挑戰(zhàn)——而且它已經(jīng)準備好起飛。
6.1 為什么猶豫?
采用 Spring Native 的最大障礙是:仍處于測試階段 (59%) 和 GraalVM 原生映像技術(shù)需要成熟 (46%)。92% 的利益相關(guān)者對 GraalVM 持積極態(tài)度,這一事實表明社區(qū)相信該技術(shù)將迅速成熟。

6.2 前途一片光明
Spring Native 于 2021 年 3 月進入公測階段。盡管 Spring Native 仍處于測試階段,但 65% 已經(jīng)計劃部署它:29% 在未來 12 個月內(nèi),另外 29% 在 1-2 年時間范圍內(nèi),還有 7% 計劃 5 年內(nèi)。

七、Spring 正在 K8s 上起飛
在 Kubernetes 上運行容器化 Spring 應用程序的組織數(shù)量從去年的 44% 飆升至 57%。這 13 點躍升與整個行業(yè)對 Kubernetes 使用增長保持一致。
如果您正在學習Spring Boot,推薦一個連載多年還在繼續(xù)更新的免費教程:http://blog.didispace.com/spring-boot-learning-2x/
十分之九的受訪者希望看到對 Kubernetes 更好的支持,包括 Kubernetes 原生服務發(fā)現(xiàn)和配置管理 (67%)、簡化的 Spring Boot 應用程序容器 image 流水線(57%) 和 Spring 應用程序的應用程序管理 (52%)。
八、總結(jié)
2021 年是 Spring 繼續(xù)蓬勃發(fā)展的一年,61% 接受調(diào)查的組織表示 Spring 是他們的主要或唯一開發(fā)平臺,高于去年 52%。驚人的達到 95% 的人贊同 Spring Boot 對生產(chǎn)力有巨大的積極影響,90% 的人表示 Spring 的影響比其他 Java 平臺更大。Stack Overflow 和 Spring.io 再次成為 Spring 社區(qū)的主要信息來源。我們將全年工作于 Spring.io,以解決社區(qū)對網(wǎng)站可用性和內(nèi)容可發(fā)現(xiàn)性的反饋。
Spring 釋放的巨大生產(chǎn)力的關(guān)鍵是許多有助于加速代碼交付的 Spring 項目。例如:近 80% 的組織使用 Spring Data——它與 MongoDB、Redis 和 Elasticsearch 在內(nèi)的領(lǐng)先數(shù)據(jù)技術(shù)集成。如果你正在尋找合適的 Spring 項目來加速你的開發(fā)工作,那么了解你的同行根據(jù)項目成熟度和文檔質(zhì)量做出決策可能會有所幫助。在使用現(xiàn)代架構(gòu)的 86% 的受訪者中,94% 使用微服務,35% 使用 Reactive,19% 使用 Serverless。
絕大多數(shù) (97%) 的調(diào)查受訪者表示 API 對他們的開發(fā)工作至關(guān)重要。雖然 JSON over HTTP 和 OpenAPI 占主導地位,令人驚訝的是已經(jīng)有 20% 在使用帶有 GraphQL 的 API。如果你的組織看到 API 快速增長,請查看 Spring Cloud Gateway 和 API Portal 以幫助簡化 API 管理。Spring 社區(qū)中的每個人似乎都知道 Spring Native。因為它仍處于測試階段,很少有人使用它,但 Spring Native 處于有利地位,可以在不久的將來快速使用。
憑借其龐大的生態(tài)系統(tǒng)和良好的業(yè)績記錄,Spring 仍然是 企業(yè) Java 的首選平臺,未來還有更多。這項年度調(diào)查是寶貴的資源,因為我們與 Spring 社區(qū)合作,優(yōu)先考慮新的創(chuàng)新領(lǐng)域并確定和解決問題。感謝你花時間閱讀本報告。如果你也參與了調(diào)查,感謝你的反饋!
往期推薦
技術(shù)交流群
最近有很多人問,有沒有讀者交流群,想知道怎么加入。加入方式很簡單,有興趣的同學,只需要點擊下方卡片,回復“加群“,即可免費加入我們的高質(zhì)量技術(shù)交流群!
點擊閱讀原文,送你免費Spring Boot教程!
