工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

SpringBoot的目標是簡化Spring的開發過程、讓開發者快速搭建框架和web容器。併爲微服務提供更好的支持,提供服務監控能力。Spring爲開發者帶來了簡單和能力:

  • Spring Boot使編碼變簡單
  • Spring Boot使配置變簡單
  • Spring Boot使監控變簡單
  • Spring Boot使部署變簡單

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

本文也是根據近幾年的工作、學習經驗,來分析和制定一個學習使用 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官網:https://spring.io/ 去獲取最權威的介紹和定義。

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

 

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

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

 


 

三、Spring 技術基礎知識

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

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

 

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:

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

public Class UserController {

  UserService userService = new UserService();

  ……

}

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

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

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

public Class UserService {

  UserDao userDao = new UserDao();

  ……

}

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

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

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

因爲軟件設計中,很強調的是設計出來的軟件需要具有很好的“特性:“高內聚、松耦合”。

 

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

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

而是去這樣寫:

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

public Class UserController {

  //UserService userService = new UserService();

  UserService userService;

  ……

}

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

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

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

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

spring配置文件:

 <bean id="cat" class="test.spring.Cat" scope="prototype">
 <property name="name" value="波斯貓"></property>
 </bean>

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

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

<!-- spring begin -->
 <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
 </dependency>

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

 


 

五、Spring Boot 的 Hello World程序

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

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

參考:

(1)目標:

 

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

(2)體系

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

 


 

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

工作8年的大佬,分享超詳細的springBoot學習心得以及步驟路線圖

 

 

有任何什麼問題或者不同想法,歡迎留言溝通

特別聲明:本文素材來源於網絡,僅作爲分享學習之用,如有侵權,請聯繫刪除!

 


 

推薦閱讀

2020年最新版springboot教程(程序員必備技能,漲薪分分鐘~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章