【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
檢視版本日誌。
--不要用肉體的勤奮,去掩蓋思考的懶惰--