首頁 > 軟體

SpringBoot2學習之springboot與spring區別分析

2022-05-28 18:02:09

springboot與spring區別

一、spring 可以做什麼

之前已經學習了 spring 的 IOC容器、AOP、springMVC 開發web應用等等,這裡的 spring 實際是指 spring-framework 這個框架。

然而,宏觀上的 spring 是一個生態圈。

spring 可以做什麼?參考官網:

微服務開發:當系統功能越來越多,就需要進一步拆分系統功能,一個模組一個應用,spring 可以幫助快速開發微服務。

  • 響應式程式設計:基於非同步非阻塞,可以通過整個應用之間構建非同步資料流的方式。非同步資料流允許佔用少量的資源,比如執行緒、記憶體、CPU等,構建一個高吞吐應用。
  • cloud 分散式雲開發:將大型應用拆分成微小應用之後,就會產生分散式應用,cloud 提供解決方案。
  • 開發web應用:像之前範例裡的,利用框架完成頁面和後臺系統的互動
  • serverless:無服務開發。簡單來說,函數即服務,無需購買任何伺服器,上到雲平臺,按照實際佔用的資源計費,節省成本。
  • 事件驅動:基於事件的方式構建實時資料流,可以通過響應式程式設計,完成高吞吐應用的開發。
  • batch:批次處理業務。

spring 生態圈裡有豐富的內容,這些組合起來就可以幫我們完成這麼多事情,上面也只是幾大特色而已。

當然,在使用生態圈裡的內容進行整合使用的過程中也是有點痛苦的,往往會陷入"設定地獄"。這一點,在之前的springMVC學習中也已經有所體驗了,這還僅僅是整合了 springMVC 而已。

那麼,誰來解決這個問題呢?沒錯,就是springboot。

二、springboot

解放繁瑣的設定,是springboot與生俱來的使命。

springboot 就相當於是一個高層的框架,底層還是spring-framework。它可以整合整個 spring 系列的技術棧,幫我們完成應用開發,不用寫那麼多繁重的設定。

打個比方,你買電腦雖然可以自己 diy組裝,但是需要非常強的動手能力。但是大多數人還是喜歡省事點,直接買個品牌機器,開箱即用。

本次學習是基於springboot2,由於spring5引入了重大升級,所以springboot2相比之前版本也是有不少的使用變化。

spring5 中的大更新就是響應式程式設計,對應的在 springboot2中,資料存取層就支援了構建非同步資料流的方式進行響應式開發。

SpringBoot 優點

  • 建立獨立Spring應用
  • 內嵌web伺服器:在之前springmvc 開發應用,最終把應用打成一個war包,最終部署到tomcat上。所以,目標環境裡還需要裝tomcat,進行設定等。
  • 使用soringboot,目標環境即使沒有tomcat也沒關係,這裡已經整合了,直接執行即可。
  • 自動 starter 依賴,簡化構建設定:
  • 之前開發springmvc,需要匯入一大堆依賴,現在只需要匯入一個依賴web-starter。另外還可以自動幫我們控制好匯入的版本,保證可以協同工作。
  • 自動設定Spring以及第三方功能:這個就是我們最喜歡的,可以解放設定的功能。
  • 提供生產級別的監控:提供生產級別的監控、健康檢查及外部化設定。幾乎不用任何設定,運維人員就可以監控到指標。
  • 無程式碼生成,無需編寫 xml:底層自動發現場景,進行設定。

總之,springboot是整個 spring 技術棧的一站式框架。或者說是,簡化 spring 技術棧的快速開發腳手架。

SpringBoot 缺點

  • 版本抵達快,需要時刻關注變化。這也變相說明生態社群非常活躍,其實也不算是個缺點,算特點。
  • 封裝太深,內部原理負責,不容易精通。

三、如何學習 springboot

最好的老師,還得是官方檔案

地址:https://spring.io/projects/spring-boot

進入官方地址後,點選LEARN可以看到有好多版本,以正式穩定版為主,點選2.5.4 GA後的檔案連線,進入說明檔案。

檔案結構

大概分為下面的模組:

官方檔案是後續學習過程中,依賴的重要學習資料。

如果要去了解版本的更新內容,

可以到 https://github.com/spring-projects/spring-boot/wiki

檢視版本紀錄檔。

以上就是SpringBoot2學習之springboot與spring區別分析的詳細內容,更多關於springboot與spring區別的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com