Spring Boot
在了解
Spring Boot
之前,我們應該先了解一下 什麼是
Spring
, 因為是
Spring Boot
是
Spring
簡化配置。
什麼是 Spring
Spring
是 一個開源架構,2003年 火起來的一個
輕量級
Java
開發架構。
作者:Rod Johnson.
Spring 是為了解決企業級應用開發的複雜性而建立的,簡化開發。
Spring 是 如何簡化開發的
- 基于
的輕量級和最小侵入性程式設計。POJO
- 通過
, 依賴注入(DI) 和 面向接口實作松耦合。IOC
- 基于切面 (AOP) 和 慣例進行聲明式程式設計。
- 通過切面和模闆減少樣式代碼。
什麼是Spring Boot
Spring Boot
是簡化
Spring
應用開發,約定大于配置。
Spring Boot
是由
Pivotal
團隊打造的,并在2014年釋出的一個全新架構,其設計目标就是用來簡化Spring應用的搭建、開發及部署。Spring Boot采用了特定的方式進行配置,進而達到使開發人員不在需要配置繁瑣的xml檔案。簡單的說其實Spring Boot并不是什麼新的架構,就是摒棄了xml的配置方式,使用了一種新的配置方式;然後在maven中使用starter的方式整合了很多第三方架構,同時提供了很多預設的配置參數。
Spring Boot主要特點
- 可以快速的搭建一個
項目Spring
- 預設使用
容器,應用無需打成嵌入式 的 Servlet
包WAR
- 有很多
自動依賴和版本控制 的 啟動器。 [ 類似于starters
]npm 依賴包
- 自動化配置,簡化開發,可以配置修改預設值
- 無需配置
,無代碼生成,開箱即用。XML
- 生産環境的運作應用監控
- 與雲計算的內建
主要簡化配置,建構項目快,入門門檻低
微服務
什麼是微服務
微服務是一種
架構風格
, 它要求我們在開發一個應用時,将這個應用建構成一系列小服務的組合,客套通過
HTTP
的方式進行互通。
微服務架構 就是 打破之前 單體架構all in one), 把每個功能元素獨立處理。把獨立出來的功能元素動态組合,需要的功能元素才拿來組合,需要多一些時可以整合多個功能元素。 微服務架構是對功能元素進行複制,而沒有對整個應用進行複制。
采用微服務架構開發的系統,每一個獨立的業務單元被劃分為一個單獨的子產品,而每一個子產品可以被獨立的部署在伺服器中,提供相應的業務服務。最終所有子產品提供的服務組合在一起,就可以形成一套完整的業務流程,成為一個系統。
微服務架構主要特點
它主要解決了單體架構中存在的問題。
子產品之間互相獨立,通過接口完成子產品間的通信,有效降低了代碼的耦合度。在開發新增的業務功能時,你隻需要從代碼庫中下載下傳你需要的子產品,并不需要下載下傳所有的代碼,開發和測試将會更加簡單,并且新功能不會對原有的系統産生任何影響,系統的可擴充性得到了有效地提升。
- 節省了調用資源
- 每個功能元素的服務都是一個可替換的、可獨立更新的
什麼是單體架構?
單體架構比較初級,典型的三級架構,前端(Web/手機端)+中間業務邏輯層+資料庫層。
所有功能都部署在同一個伺服器中的系統,采用的架構就是單體架構。
單體架構的主要特點
優點
- 部署 / 測試 容易
- 開發簡單,集中式管理
- 功能都在本地,沒有分布式的管理和調用消耗
缺點
-
複雜性高
複雜性高,當項目疊代時間長,子產品代碼會變臃腫,耦合度高,難以維護
-
擴充能力受限
體應用隻能作為一個整體進行擴充,無法根據業務子產品的需要進行伸縮。
-
穩定性差
一個微小的問題,都可能導緻整個應用挂掉
-
不靈活
建構時間長,任何小修改都要重構整個項目,耗時
-
效率低
開發都在同一個項目改代碼,互相等待,沖突不斷