有了 Spring 爲何要再弄一個 Spring Boot

1. 前言

剛剛入行 Java 的同窗常常有這種疑問: SpringSpring Boot 有什麼關係?它們之間有什麼區別?今天來探討一下這個問題。編程

2. Spring Framework

Spring 一般指的是 Spring Framework 。一般 Java 開發就是面向對象開發、面向抽象接口開發。而軟件項目大多都是「堆積木」,隨着版本迭代會愈來愈大,這形成了個很大的問題就是對象的管理。恰好 Spring 的控制反轉,依賴注入,切面編程的特性對這些類生命週期的管理,組件模塊化,基礎層和業務分離解耦提供了很大的便利。就像粘合劑同樣把各類功能的庫「粘」到一塊兒,讓它們協同工做。框架

除了上圖中的一些功能特性外,Spring Framework 另外有個不多被說起的特色,它不多去造輪子,它只做上層的適配,做爲一箇中間抽象層。這種好處在於靈活,使用者能夠根據場景切換技術棧;另外這成就了 Spring Framework 成爲事實上 J2EE 的標準。 Spring Framework 已經成爲 Java 開發必須掌握的基本框架,不少時候咱們開發就是跟它打交道。模塊化

3. Spring Boot

Spring Framework 通過數年的迭代已經喪失了輕量級的標籤。在享受 Spring Framework 帶來的便利的同時,咱們又進入了另外一個噩夢:大量的 XML 配置。 Spring 使用者不僅僅要寫業務代碼,還要經過編寫對應的 XML 配置,引入其它組件或者功能類庫也要進行繁瑣的適配,這偏離了 Spring Framework 最初設計的初衷。因此 Spring Boot 被設計出來。組件化

Spring BootSpring Framework 的功能進行了擴展,將繁瑣的配置功能進行了內部整合,經過一些自動化的配置和相似 SPI 的發現機制來自動感知功能組件,大大下降了使用成本,並且保證了和Spring Framework 的一致性。學習

簡便

Spring Boot能夠快速經過引導式的步驟搭建一個生產級企業應用開發平臺,而無需繁瑣的配置。並且提供了默認配置,甚至你能夠達到零配置接入。測試

靈活

Spring Boot同時對經常使用的功能進行了組件化的抽象,能夠按需引用。另外也指定了一攬子的組件規範讓開發者能夠自行實現符合 Spring Boot 風格的組件(Starter),讓你實現插件化開發。spa

集中

每個版本的依賴都通過測試和挑選,對各個組件進行了集中管理,構成一個 parent 集合,減小了依賴衝突的可能性。插件

敏捷

Spring Boot經過一些註解簡化了以前的開發和配置,減小了模板代碼的編寫,加快了開發速度。內置Web 容器甚至能夠以 Jar 的方式快速部署運行。設計

4. 二者之間的關係

Spring FrameworkSpring Boot 的根本是一致的。Spring BootSpring Framework 的引導程序以簡化其配置和使用。而Spring FrameworkSpring Boot 的基礎,Spring Boot 沒法脫離 Spring Framework 。用戶經過上層 Spring Boot 的引導來使用 Spring Framework3d

5. 總結

今天對 Spring FrameworkSpring Boot 之間的關係進行了簡單說明,但願可以幫助一些學習者的疑惑。有什麼問題能夠留言討論,也能夠關注公衆號:Felordcn 私信留言,同時關注可直接獲取學習資料進行學習。

相關文章
相關標籤/搜索