Spring Boot 學習路線,本文計劃根據作者近幾年的工作、學習經驗,來分析和制定一個學習使用 Spring Boot技術的步驟路線圖。

SpringBoot是伴隨著Spring4.0誕生的; SpringBoot的目標是簡化Spring的開發過程、讓開發者快速搭建框架和web容器。並為微服務提供更好的支持,提供服務監控能力。Spring為開發者帶來了簡單和能力:

Spring Boot使編碼變簡單

Spring Boot使配置變簡單

Spring Boot使監控變簡單

Spring Boot使部署變簡單

一、準備工作

俗話說:「工欲善其事必先利其器」。特別是軟體開發,這樣一個重視工程實踐的領域,一定要最先選擇和熟悉一系列的開發環境工具。

首先推薦選用最新版本技術標準的開發工具,將如下的開發環境安裝配置好。

開發環境:

(1)JDK 1.8

(2)Eclipse Oxygen EE版本 或者也可以使用 IntelliJ IDEA

(3)Tomcat 9(不需要,Spring Boot 中有內置的servlet容器)

安裝配置好了,如上的開發工具後,可以在環境下,去新建普通的Java project、Dynamic web project,做一個「Hello World」式的入門程序,去驗證環境可以正常使用。

然後,就可以進入到 Spring Boot 的技術學習了!

二、Spring Boot 知識入門

對計算機技術知識的學習和使用,我建議理論聯繫實踐。在很多時候,我們接觸到一個新的技術的時候,最開始,肯定是被這些技術涉及到的術語、辭彙所困擾,不明白這些技術術語辭彙的定義、概念、含義,沒有這些做根基,就很難做到掌握和學習這個技術,並達到融匯貫通的程度。

所以,學習 Spring Boot ,首先就要從宏觀的層面上,去了解這個技術它的背景知識、運用場景、發展淵源,演進歷史,這一塊,可以通過在網路上搜索到大量的知識介紹。

建議訪問spring官網:spring.io/ 去獲取最權威的介紹和定義。

我這裡,強調一點:Spring Boot 運用「約定優於配置」的思想,對使用 Spring Boot創建的工程,提供約定、預設、默認的配置,去簡化傳統手動、一步一步配置的開發方式;

三、Spring 技術基礎知識

這一部分技術知識,已經是 Java EE開發必備的知識。包括IOC 和 AOP,重點要把IOC弄清楚,其次再說AOP。

1、Bean工廠

Spring中,存在一個 Bean工廠。我們把每一個java類當做是一個 bean(即豌豆),Spring就可以當做是一個factory(工廠),bean factory(豌豆工廠)的功能就是專門生產bean的。也就是說:Spring 可以去生產類的對象,也即 實例化類對象(new 類名();)。

2、IOC/DI 控制反轉/依賴注入

從新建一個Dynamic Web project開始,在工程項目中,引入 最新版本的 Spring jar包,配置使用Spring,熟悉Spring框架在項目中,所起到的作用。重點學習了解IOC/DI,即「控制反轉、依賴注入」

簡單的說清楚,IOC產生的原因,及解決的問題。

在「三層結構」(表示層、業務邏輯層、數據訪問層)架構開發中,層與層之間,類有調用依賴的關係

表示層——>業務邏輯層——>數據訪問層,表示層類中,需要調用業務邏輯層類的方法;業務邏輯層類中,需要調用數據訪問層類的方法。

以用戶登錄、註冊、用戶個人資料維護為例:設計3個類 UserController, UserService, UserDao ,分別對應「三層結構」的表示層、業務邏輯層、數據訪問層。

那麼,在項目實際開發代碼中,存在:

表示層類 UserController 中,要引用 UserService:

業務邏輯層類 UserService 中,要引用 UserDao:

我們會發現 類與類之間,有很緊密的依賴關係,即:在代碼里,一個類中,引用了另外一個類,並 new 了一個對象。

這樣,也就意味著有很強的耦合性。而這樣,是不建議的。

因為軟體設計中,很強調的是設計出來的軟體需要具有很好的「特性:「高內聚、松耦合」。

為了解耦,降低這種很強的依賴性,Spring 框架中,設計出了 IOC。

代碼中,不去 維護類與類之間的依賴性,也即: UserController 中不去new UserService()

而是去這樣寫:

那麼 實例化UserService,即 new UserService();在哪裡操作?

交給Spring 的bean工廠,去實例化。

如何去實例化類對象,有哪些需要約定,這就需要一個 xml配置文件去記錄。後來,可以使用annotation(註解)的方式去配置屬性。

spring配置文件:

3、AOP

面向切面編程,主要解決橫切性的問題。

什麼是橫切性的問題?比如開發中,有很多的類、很多的方法,類與類之間存在調用的依賴的關係,我們稱之為「從上而下」的線性調用。在這些代碼中,經常需要在很多位置,添加「列印日誌」的代碼。而這些,「列印日誌」的代碼,基本都是一樣的,和「從上而下」的線性調用,沒有什麼直接的業務邏輯關係。我們可以稱之為:橫切到這個「從上而下」的線性中。就像一個「十字」、「垂直」、「正交」這樣。

除了「日誌」屬於橫切性問題,「事務」也屬於。

AOP就是為了解決這種橫切性的問題,通過配置,不讓這些相同的代碼,充斥在項目代碼的各處。而是通過,很少的配置,把這些相似的橫切性代碼,配置到它們應該出現的位置。

AOP也需要了解一些,專門的術語,我們這裡只是簡單的介紹一下,AOP需要說清楚,還要寫專門的文章,去舉例和描述。

四、Maven、Gradle

簡單的說:Maven 和 Gradle 都是解決相同的問題,就是我們在創建Java相關的項目工程時,項目中經常需要使用各種 框架或類庫的.jar 包。傳統入門的方式,是去專門的官網,去下載好這些jar包,複製粘貼到項目中,然後「Add to buildpath」。這樣會造成一些問題。

(1)一些框架的 jar包有很多個,在項目中使用時,它們jar包之間存在依賴關係;

(2)隨著時間的遷移,同一個 .jar 包,會不斷的推出新的版本,新舊版本間可能會有衝突問題。

(3)同一個項目,可能會使用好幾個框架,這些框架中,都使用了一些相同的jar包,版本之間如何統一。

(4)同一台電腦中,創建多個工程,每個工程都使用了相同的框架,傳統方式的結果就是,這些框架的jar包在電腦中,複製很多次。

……

Maven 和 Gradle 的出現就是,去維護和管理這些jar包。使得,只用去寫一個配置文件,就可以自動的去使用這些jar包。

maven配置文件 pom.xml

五、Spring Boot 的 Hello World程序

在Eclipse中,創建一個 使用 Spring Boot 技術的 Hello World程序。去初步的體驗,和接觸Spring Boot ,有個直觀的感受和印象。有助於後面慢慢的去深入了解和學習掌握這個技術。

參考:

(1)目標:

(2)體系

六、Spring Boot 和 Spring、Spring Cloud 的 聯繫與區別

SpringBoot是基於Maven來管理Jar包的。首先我們需要在Idea中配置我們Maven的本地倉庫位置

深入淺出spring boot PDF資料分享:

1. 創建獨立的Spring應用程序

2. 嵌入的Tomcat,無需部署WAR文件3. 簡化Maven配置4. 自動配置Spring5. 提供生產就緒型功能,如指標,健康檢查和外部配置6. 絕對沒有代碼生成並且對XML也沒有配置要求 [1]

本文將以一些非常切合生產實際的應用案例,帶你一起使用springboot框架,開始一段愉快的快速開發和探索之旅

領取方式:關注+轉發+收藏後私信我【架構資料】即可免費獲取!

頭條篇幅有限,只截圖出來一部分,有需要的小夥伴趕快私信我來獲取吧!

spring boot


推薦閱讀:
相关文章