1. 程式人生 > 其它 >【SpringBoot2 從0開始】springboot 與 spring

【SpringBoot2 從0開始】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#release-notes

檢視版本日誌。

--不要用肉體的勤奮,去掩蓋思考的懶惰--