為什麼SpringBoot受開發者歡迎?Java程序員該如何有效地學習?

為什麼SpringBoot受開發者歡迎?Java程序員該如何有效地學習?

在這篇文章中,我將嘗試回答這兩個問題。

為什麼SpringBoot如此受歡迎?

可能有很多原因,為什麼Spring和SpringBoot非常受歡迎,但在我看來,其主要原因如下:

1.顯著提高開發人員的生產力

SpringBoot強大的自動配置機制使得開始使用基於Spring的應用程序非常簡單。更重要的是,SpringBoot提供了多種啟動器,這對於許多應用來說已經足夠了。

您可以通過創建項目,選擇Web,Spring Data JPA / Mongo等,H2 / EmbeddedMongo,Spring Data REST啟動器並創建您的域實體和存儲庫來創建由數據庫支持的REST API。就是這樣,你有一個功能齊全的REST API。

這降低了新手熟悉如何手動配置的入門障礙,並且可能已經完成了100多次,並厭倦了編寫該樣板,SpringBoot很好解決了這種問題。

2.簡化更高層次的抽象

Spring和SpringBoot的主要目標之一是讓事情變得更簡單。Spring組合擁有自己強大的Web MVC框架,Spring Security框架,但其大部分其他項目都提供更高級別的抽象,以使它們更容易使用。

例如,Spring Data JPA通過提供API來執行CRUD操作,排序,分頁而不需要自己實現所有這些操作,從而使JPA非常容易使用。

對於Kafka而言,Spring AMQP或Spring提供了更高級別的抽象,因此您可以輕鬆使用RabbitMQ或Kafka,而無需編寫低級別樣板代碼。

3.微服務和雲本地友好

微服務體系結構是當前最新的熱門趨勢,許多組織都偏愛微服務體系結構,並希望將其部署在AWS,CloudFoundry等雲環境中。

通常,SpringBoot應用程序是作為自包含的部署單元(FAT Jar)構建的,並且使用其概要文件概念,我們可以在多個環境中部署相同的應用程序,而無需更改任何代碼。除此之外,SpringCloud模塊還提供了構建Cloud Native微服務所需的一組功能。

4.解決現代商業需求

現代應用需求已經發生了變化,並且不斷變化得如此之快,我們不能等待3到4年的發佈週期才能獲得新功能。我們需要快速發佈週期的框架來支持這些業務需求。

Spring的核心是一個依賴注入(DI)容器。但Spring的力量來自其豐富的投資組合項目。你想使用NoSQL數據庫,你想要一個健壯的安全框架,你想要與社交平臺集成,你想使用大數據框架,若你想使用像Kafka這樣的Streaming平臺,都已被覆蓋了。

為什麼SpringBoot受開發者歡迎?Java程序員該如何有效地學習?

5. Spring開發者社區

這是Spring框架的最佳部分。你可以在Spring框架上找到一百萬篇博客,裡面有精彩的博客文章。您幾乎可以找到StackOverflow上每個問題的解決方案。您可以輕鬆地通過社交軟件與Spring Developer團隊聯繫。

Spring和SpringBoot的挑戰

當我和一些人(包括後輩和經驗豐富的開發人員)交談時,他們一直說的是“Spring是巨大而複雜的”。但我對此有完全相反的看法。在與他們談到他們為什麼認為Spring很複雜之後,我明白他們為什麼會這樣。這與我感覺學習JavaScript框架很複雜的原因是一樣的。

我時不時想學習NodeJS和一個新的JavaScript框架,比如ReactJS或VueJS等。首先,我嘗試列出一些需要學習的東西,以便我有一個基準,可以說我對NodeJS / ReactJS等。花了4到6個小時,知道有36,794種方法可以在JavaScript中做任何事情之後,我迷失在這個JavaScript工具和選項的海洋中。然後我覺得JavaScript很複雜。

我應該做的就是停止追逐所有框架/工具,先學習準系統JS或ES6,然後選擇一個框架,比如說ReactJS,以及一個構建工具,比如WebPack,然後學習如何正確使用它們。

除了Spring的這種感覺是巨大而複雜的,我還看到了人們說SpringBoot很複雜的原因:

  1. 人們直接跳到SpringBoot,沒有任何Spring知識 ,一切看起來都很神奇。只要採用默認設置並需要對其進行自定義,它就會很好地工作,感覺很複雜。

  2. 選項太多。 當你在Spring相關的問題上尋找幫助時,你總能找到100個選項來解決它,這讓人困惑。

  3. 恕我直言, 一些Spring模塊很複雜。 有時候,我不得不更深入地瞭解Spring Security源代碼,我覺得它非常複雜,因為它對幾乎所有東西都有自定義鉤子。

如何有效地學習Spring和SpringBoot?

我會給你一些學習Spring和SpringBoot的技巧,基本上是我在學習時遵循的。

1.迭代學習

我不認為人們可以坐下來學習關於框架的一切。我遵循迭代方法。

迭代1: 遵循一些快速入門指南並創建一個包含所有依賴項的項目並構建一個Todo應用程序(Todo是新的HellowWorld權利:-))。當您成功運行示例應用程序時,它會提供信心。

迭代2: 閱讀官方文檔

瞭解這個特定框架試圖解決什麼問題以及在什麼情況下這個框架是合適的,以及它不是一個好選擇是非常重要的。在這方面,Spring框架文檔非常棒,太長(800多頁):-)。

迭代3: 構建一個適度複雜的應用程序

迭代4: 深入研究框架的源代碼,並瞭解如何定製框架

首先,學習Spring Core框架

如果您沒有Spring的知識,請不要跳到SpringBoot上。我強烈建議首先學習沒有SpringBoot的Spring框架,以便知道SpringBoot在幕後做了些什麼。

熟悉Spring DI概念,範圍,註釋,生命週期回調,bean配置樣式(註釋,@Beans等)。瞭解Spring如何使用Template模板(JdbcTemplate,JmsTemplate等)來避免編寫樣板代碼。

3.瞭解SpringBoot AutoConfiguration的工作原理

SpringBoot的威力來自它的AutoConfiguration機制,它並不神奇。學習Spring的@Conditional特性並探索一些SpringBoot的AutoConfiguration類,比如DataSourceAutoConfiguration,JpaAutoConfiguration等,你可以很容易地理解SpringBoot是如何基於一些條件自動創建bean的。

4.跟隨社區並閱讀博客

這是Spring框架的最佳組成部分,也是龐大的社區,有數千篇關於Spring的博客。找到這些真棒Spring博客的一個簡單方法是搜索閱讀每週二在Spring Blog上發佈的Josh Long(@starbuxman)的 Spring Week系列。

5.練習,練習和練習

沒有什麼可以取代“實踐”。不管你讀了多少,你觀看的關於Spring的教程視頻有多少。最好的學習方法就是使用它。

現在我幾乎看不到Java項目不使用Spring和SpringBoot。你可以在項目上學習,但我強烈建議創建一個Github開源項目並使用各種Spring組合項目來實現它。

畢竟,學習還需要一些時間。花時間掌握它。耐心一點。如果你遇到困難,請與人聯繫。閱讀書籍和博客。練習,練習和練習。

我希望本文對你有幫助,如果你喜歡請分享,謝謝!

為什麼SpringBoot受開發者歡迎?Java程序員該如何有效地學習?


分享到:


相關文章: