什麼是 JAVA Spring Boot?
Spring Boot 的簡介 — 開發 Web 應用程式和微服務的熱門 JAVA 型工具

什麼是 Spring Boot?
JAVA Spring Boot 是開放原始碼工具,它更容易使用 JAVA 架構來建立微服務和 Web 應用程式。對於 Spring Boot 的任何定義,交談都必須以 JAVA 開頭,JAVA 是應用程式開發中極度熱門的開發語言和運算平台。世界各地的開發人員都以學習 JAVA 作為程式碼旅程的開端。JAVA 彈性且方便使用者使用,是開發人員建置多種應用程式時的最愛,舉凡社交媒體、Web 和遊戲應用程式及網路與企業應用程式,無所不在。
JAVA 和 Spring 架構
雖然 JAVA 可能比其他語言便於使用且更容易學習,但建置、偵錯及部署 JAVA 應用程式的複雜程度已呈報為令人頭暈目眩的新高度。這是因為現代開發人員開發 Web 應用程式或行動裝置應用程式以取得常見的新式技術,例如音樂串流或行動現金付款應用程式時,所使用的變數指數。撰寫基本企業營運應用程式的開發人員現在需要處理多個程式庫、外掛程式、記錄與處理程式庫、Web 服務整合,以及 C#、JAVA、HTML 等多種語言。可理解的是,對於可簡化 JAVA 應用程式開發,節省開發人員時間和金錢的任何工具都不滿足需求。
輸入應用程式架構—根據開發人員的需求,開發人員可以使用並新增至其程式碼的大型預先寫入程式碼主體。無論這些架構是開發行動裝置和 Web 應用程式,或是使用桌面及 API,都能讓開發人員負載更輕鬆。架構提供可重複使用的程式碼與工具,協助將軟體發展專案的不同元素連結在一起,讓建立應用程式更快速、更輕鬆、更安全。
Spring 的推出位置: Spring 是開放原始碼專案,提供簡化且模組化的方法,讓您能夠使用 JAVA 建立應用程式。Spring 系列專案於 2003 年啟動,以因應早期 JAVA 開發的複雜性,並提供開發 JAVA 應用程式的支援。名稱 Spring 通常是指應用程式架構本身或整個專案群組或模組。JAVA Spring Boot 是專為 Spring 架構延伸模組而建置的特定模組。
因此,在 Spring 架構、Spring Boot 和 JAVA 如何共同作業的背景中,以下是 Spring Boot 的定義; 這個工具可簡化並加速 JAVA 架構 (Spring) 內的 Web App 和微服務開發。
有時候,因為語言和/或平台是 JAVA,所以它稱為「JAVA Spring Boot」、「JAVA Spring 架構」或「Spring Boot 架構」。不過,因為 JAVA 有其他協力廠商架構,例如播放和休眠,所以說「Spring」和「Spring Boot」更準確。
如需 JAVA 基本專案的高層級討論,請參閱文章,什麼是 JAVA?
Spring 和 Spring Boot 有什麼差異?
如前所述,Spring 是開放原始碼、JAVA 型應用程式架構,涵蓋許多其傘下的小型專案。其他熱門 Spring 專案包括 Spring Data、Spring Cloud 和 Spring Security,而這還只是部分例子。為了知悉 Spring 與 Spring Boot 之間的差異,必須了解即使其核心功能不同,但都屬於 Spring 系列。
若要充分了解 Spring Boot 與 Spring 之間的差異,我們必須先定義幾個關鍵字。


什麼是微服務?
Microservices 是軟體發展架構的方法。Microservices 中的 「Micro」 是指以小型、可管理的片段或元件傳遞的程式碼,而每個「services」或核心函數會獨立建立並部署,而不需其他服務。獨立元件會共同作業,並透過稱為合約的指定 API 檔進行通訊。這些微服務的小比例和相對隔離有許多優點。例如,因為此類型的架構是分散式且鬆散地結合,所以如果有一個元件失敗,則整個應用程式不會中斷。其他優點包括提高生產力、更輕鬆地維護、更好的業務對齊方式,以及更大的容錯能力。
什麼是相依性插入?
相依性插入 (DI) 是用來反轉控制 (IoC) 的設計技術。在像是 JAVA 這類物件導向的程式設計中,相依於其他物件的物件會稱為相依性。一般來說,接收物件或依存物件稱為用戶端,而用戶端相依的物件則稱為服務。所以,相依性插入會將服務傳遞給用戶端,或使用稱為插入器的程式碼來「插入」相依性。DI 可消除用戶端指定要使用哪一項服務的必要—插入器對用戶端有用。


什麼是設定慣例?
透過設定的慣例,有時稱為編碼方式,是用於應用程式架構的概念,可減少開發人員必須做出的決定數目。它遵循「不要重複自己」原則,以避免撰寫冗余的程式碼。依慣例撰寫程式碼會努力保持彈性,同時允許開發人員只針對他們所建立之應用程式的非特定層面撰寫程式碼。當應用程式的預期行為符合建立的慣例時,應用程式預設只會執行,而不需要寫入設定檔。開發人員必須明確寫入設定檔案,因為需要的行為不受「慣例」的同意。
Spring 架構與 Spring Boot
因為 Spring Boot 是根據 Spring 架構的優點而建置,因此 Spring 與 Spring Boot 並非「二選一」,而是「相輔相成」的關係。不是 Spring 與 Spring Boot; Spring 與 Spring Boot 可攜手合作:
Spring | Spring Boot | |
---|---|---|
這是什麼? | 以 JAVA 為基礎的開放原始碼 Web 應用程式架構。 | 在 Spring 架構上建置的延伸模組或模組。 |
它有何功能? | 使用預先建置程式碼的工具和程式庫,提供彈性且完全可設定的環境,以建立自訂、鬆散結合的 Web 應用程式。 | 提供建立獨立 Spring 應用程式的功能,這些應用程式只要立即執行,不需要註解、XML 設定或撰寫大量其他程式碼。 |
何時該使用它? |
在需要時使用 Spring:
|
在需要時使用 Spring Boot:
|
它的主要功能是什麼? | 相依性插入 | 自動設定 |
它是否包含內嵌伺服器? | 不。在 Spring 中,您必須明確設定伺服器。 | 是,Spring Boot 內建的 HTTP 伺服器,例如 Tomcat 和 Jetty。 |
如何設定? | Spring 架構提供彈性,但其設定必須手動建置。 | Spring Boot 預設的「約定勝於設定」原則,自動設定 Spring 和其他協力廠商架構。 |
我需要知道如何使用 XML 嗎? | 在 Spring 中,需要了解 XML 設定。 | Spring Boot 不需要 XML 設定。 |
是否有開發/測試應用程式的 CLI 工具? | 只有 Spring 架構不提供用於開發或測試應用程式的 CLI 工具。 | 作為 Spring 模組,Spring Boot 具有用於開發及測試 Spring 型應用程式的 CLI 工具。 |
它是透過釘選還是取消釘選的方法運作? | 取消釘選的* | 釘選的* |
*釘選與取消釘選架構方法
雖然「釘選」一詞聽起來可能有些負面,但 Spring Boot 和取消釘選的 Spring 架構兩者都有其優點。
釘選的方法
釘選的方法採取單向,且比所有其他方法都容易。透過設計,軟體會限制設計者,鼓勵他們以指定的方式執行工作。
它提供準備良好的路徑,這是適用於大多數情況下大部分人員的最佳作法。應用程式與這些最佳做法和廣泛的慣例緊密地書寫。釘選的方法可讓共同作業和取得程式碼專案的協助更加容易 —其他使用該架構的開發人員將能立即熟悉新的應用程式,並直接加入。
取消釘選的方法
如果所有解決方案都需要大約相同的投入量或複雜性,則採用未釘選的方法。其立場為解決問題並非只有一種正確方式。相反地,它提供彈性的工具,可以用多種方式解決問題。取消釘選的架構具有在開發中提供許多彈性的好處,而且將更多控制權交在開發人員手中。擁有太多彈性的主要不足之處在於開發人員需要做出更多決策,最後可能必須撰寫更多程式碼,因為架構非常開放且完全取消固定。
Spring Boot 功能與優點
最後,令人興奮的部分— JAVA Spring Boot 提供的核心功能,除了 Spring 架構之外。Spring Boot 提供更輕鬆、更快速的路徑來設定、設定及執行應用程式。這會消除設定大多數 Spring 型應用程式所需的大量設定。開發人員無需學習基礎 Spring 架構,就能直接加入並使用 Spring Boot。

以下是 Spring Boot 功能協助簡化 JAVA 程式設計工作的說明。Spring Boot 的一些主要功能為:
- 獨立應用程式-Spring Boot 可協助建立未系結至特定平台的應用程式,並在沒有網際網路連線或其他已安裝的服務的情況下,在裝置上本機執行的應用程式才能運作。
- 內嵌伺服器 —Spring Boot 可讓您直接內嵌 Tomcat、Jetty 或 Undertow 等伺服器。
- 釘選的方法 -Spring Boot 提供釘選的入門相依性,以簡化組建設定。
- 自動設定 -Spring Boot 盡可能自動設定 Spring 和其他協力廠商媒體櫃。
- 就緒的功能—Spring Boot 提供生產就緒的功能,例如計量、健康情況檢查及外部化設定。
Spring Boot 的優點
Spring Boot:
- 縮短開發時間並提高生產力—Spring Boot 讓使用 JAVA 開發 Spring 型應用程式變得更容易。Spring 架構採用的意見方法可減少花費在決策和重複工作上的時間,並釋放專注在建立和測試應用程式的時間。
- 減少寫入重複項目程式碼、註釋和 XML 設定—如果開發人員不想產生程式碼或設定 XML,甚至不需要學習 Spring 架構。
- 整合 Spring 專案系列中的應用程式—Spring Boot 應用程式可與 Spring 架構生態系統中的其他專案完美整合,例如 Spring Data、Spring Cloud、Spring Security,以及其他受信任的雲端服務,例如 Microsoft Azure Spring Cloud。
- 提供開發/測試控管—透過 Spring Boot 的命令列介面 (CLI) 工具和內嵌的 HTTP 伺服器,讓開發/測試 Spring 型應用程式建立環境變得非常簡單。
- 提供可讓開發更輕鬆的外掛程式和工具—Spring Boot 提供可與記憶體中資料庫搭配使用的外掛程式,以及其他熱門的組建自動化工具,例如 Apache Maven。
JAVA Spring Boot 教學課程
如果您已經熟悉使用 Spring 架構建置應用程式,您可能會覺得使用此區段中提供的教學課程、專案入門和文件來了解 Spring Boot 非常簡單。但如果您很急著使用 Spring Boot 卻還不知道架構,這裡有一些好消息: 在學習 Spring 架構之前,即可學習並開始使用 Spring Boot 工作,因為在學習 Spring 架構時,您會同時學到許多架構基礎。雖然這不會教導您了解架構的所有資訊,但若您稍後決定要了解,此功能會為您提供良好的立足點。
除了讓應用程式開發更快、更有效率之外,學習 Spring Boot 的另一個好處是,它也會讓您能夠使用其他 Spring 功能,包括 Spring Data、Project 反應器和 Spring Security。

即便如此,如果您先了解相依性插入和反轉控制項在 Spring 架構中如何運作,您將更容易完成第一個 Spring Boot 教學課程。以下是非常高層級的概觀:
相依性插入
- XML 型,例如 <beans/> 和 <namespace:*/>
- 註釋型,即 @Component、@Autowired、@Inject
- JAVA 型,例如 @Configuration 類別、@Bean 方法
反轉控制 (IoC)
- ApplicationCoNtext— 作為 Spring IoC 容器的根介面
- BeanFactory— 用來存取 Spring 容器的介面
- Beans— 物件由 ApplicationCoNtext 具現化、組合和管理
JAVA Spring Boot 初學者的教學課程
在已掌握基本功能之後,如果您想要大規模組建和部署 Spring Boot 應用程式,請考慮從 Microsoft 和 VMware 查看完全受控的 Azure Spring Cloud 服務。或者,從如何使用 TLS/SSL 憑證保護您的 Spring Boot a 應用程式這個教學課程開始。
建立並協助保護 JAVA 應用程式
使用 Azure Active Directory (Azure AD) 的 Spring Boot 入門建立具有 Spring Initializr 的 JAVA 應用程式。
將您的第一個應用程式部署到 Azure Spring Cloud
了解如何建立、佈建及監視使用 Spring Initializr 建置的簡單 Spring Boot 應用程式。
建置簡單 Spring Boot 微服務
建置及部署簡單的微服務,然後學習新增 Spring Cloud 技術到其中。
更多 Spring Boot 入門
將儲存空間、安全性、驗證和金鑰保存庫功能新增至您的 Spring Boot 應用程式。
常見問題集
-
Spring Boot 是 Spring 提供的開放原始碼、微服務型 JAVA Web 架構,特別適用於開發 Web 應用程式和微服務的軟體工程師。
-
「JAVA 中的 Spring Boot」是另一種稱呼「JAVA Spring Boot」的方式—這兩個字詞可以互換使用。JAVA 是語言與平台,Spring 是以 JAVA 為基礎的應用程式架構,Spring Boot 是 Spring 架構的延伸模組,具備一些新增的優點。
-
Spring Boot 具有一般 Spring 架構的功能,但 Spring Boot 不需要您學習 Spring。開發人員可以更短的時間讓應用程式啟動並執行,因為 Spring Boot 屬性是自動設定的,且有意見的方法會移除與 Spring app 開發和部署有關的大量重複測試程式碼和設定。
-
是的,如上所述,Spring Boot 對於軟體開發架構的微服務方法特別有用。微服務是一種常用方式,可建立小型的自主團隊,這些團隊可以獨立工作,而且根據本身的本質,微服務只能在後端工作。
-
減少開發時間、提高生產力和輕鬆使用只是開發 Spring Boot 應用程式的一些優點。
-
Spring 網站上有許多教學課程、快速入門和文件,以及來自 Microsoft Azure 的 Spring Boot 入門和文件。如果您想要立即開始部署 Spring Boot 應用程式,請查看網路研討會加速大規模讓 Spring Boot 應用程式至雲端。