SpringBoot2學(xué)習(xí)之springboot與spring區(qū)別分析
springboot與spring區(qū)別
一、spring 可以做什么
之前已經(jīng)學(xué)習(xí)了 spring 的 IOC容器、AOP、springMVC 開發(fā)web應(yīng)用等等,這里的 spring 實際是指 spring-framework 這個框架。
然而,宏觀上的 spring 是一個生態(tài)圈。
spring 可以做什么?參考官網(wǎng):
微服務(wù)開發(fā):當(dāng)系統(tǒng)功能越來越多,就需要進一步拆分系統(tǒng)功能,一個模塊一個應(yīng)用,spring 可以幫助快速開發(fā)微服務(wù)。
- 響應(yīng)式編程:基于異步非阻塞,可以通過整個應(yīng)用之間構(gòu)建異步數(shù)據(jù)流的方式。異步數(shù)據(jù)流允許占用少量的資源,比如線程、內(nèi)存、CPU等,構(gòu)建一個高吞吐應(yīng)用。
- cloud 分布式云開發(fā):將大型應(yīng)用拆分成微小應(yīng)用之后,就會產(chǎn)生分布式應(yīng)用,cloud 提供解決方案。
- 開發(fā)web應(yīng)用:像之前示例里的,利用框架完成頁面和后臺系統(tǒng)的交互
- serverless:無服務(wù)開發(fā)。簡單來說,函數(shù)即服務(wù),無需購買任何服務(wù)器,上到云平臺,按照實際占用的資源計費,節(jié)省成本。
- 事件驅(qū)動:基于事件的方式構(gòu)建實時數(shù)據(jù)流,可以通過響應(yīng)式編程,完成高吞吐應(yīng)用的開發(fā)。
- batch:批處理業(yè)務(wù)。
spring 生態(tài)圈里有豐富的內(nèi)容,這些組合起來就可以幫我們完成這么多事情,上面也只是幾大特色而已。
當(dāng)然,在使用生態(tài)圈里的內(nèi)容進行整合使用的過程中也是有點痛苦的,往往會陷入"配置地獄"。這一點,在之前的springMVC學(xué)習(xí)中也已經(jīng)有所體驗了,這還僅僅是整合了 springMVC 而已。
那么,誰來解決這個問題呢?沒錯,就是springboot。
二、springboot
解放繁瑣的配置,是springboot與生俱來的使命。
springboot 就相當(dāng)于是一個高層的框架,底層還是spring-framework。它可以整合整個 spring 系列的技術(shù)棧,幫我們完成應(yīng)用開發(fā),不用寫那么多繁重的配置。
打個比方,你買電腦雖然可以自己 diy組裝,但是需要非常強的動手能力。但是大多數(shù)人還是喜歡省事點,直接買個品牌機器,開箱即用。
本次學(xué)習(xí)是基于springboot2,由于spring5引入了重大升級,所以springboot2相比之前版本也是有不少的使用變化。
spring5 中的大更新就是響應(yīng)式編程,對應(yīng)的在 springboot2中,數(shù)據(jù)訪問層就支持了構(gòu)建異步數(shù)據(jù)流的方式進行響應(yīng)式開發(fā)。
SpringBoot 優(yōu)點
- 創(chuàng)建獨立Spring應(yīng)用
- 內(nèi)嵌web服務(wù)器:在之前springmvc 開發(fā)應(yīng)用,最終把應(yīng)用打成一個war包,最終部署到tomcat上。所以,目標(biāo)環(huán)境里還需要裝tomcat,進行配置等。
- 使用soringboot,目標(biāo)環(huán)境即使沒有tomcat也沒關(guān)系,這里已經(jīng)集成了,直接運行即可。
- 自動 starter 依賴,簡化構(gòu)建配置:
- 之前開發(fā)springmvc,需要導(dǎo)入一大堆依賴,現(xiàn)在只需要導(dǎo)入一個依賴web-starter。另外還可以自動幫我們控制好導(dǎo)入的版本,保證可以協(xié)同工作。
- 自動配置Spring以及第三方功能:這個就是我們最喜歡的,可以解放配置的功能。
- 提供生產(chǎn)級別的監(jiān)控:提供生產(chǎn)級別的監(jiān)控、健康檢查及外部化配置。幾乎不用任何配置,運維人員就可以監(jiān)控到指標(biāo)。
- 無代碼生成,無需編寫 xml:底層自動發(fā)現(xiàn)場景,進行配置。
總之,springboot是整個 spring 技術(shù)棧的一站式框架?;蛘哒f是,簡化 spring 技術(shù)棧的快速開發(fā)腳手架。
SpringBoot 缺點
- 版本抵達快,需要時刻關(guān)注變化。這也變相說明生態(tài)社區(qū)非常活躍,其實也不算是個缺點,算特點。
- 封裝太深,內(nèi)部原理負(fù)責(zé),不容易精通。
三、如何學(xué)習(xí) springboot
最好的老師,還得是官方文檔
地址:https://spring.io/projects/spring-boot
進入官方地址后,點擊LEARN可以看到有好多版本,以正式穩(wěn)定版為主,點擊2.5.4 GA后的文檔連接,進入說明文檔。
文檔結(jié)構(gòu)
大概分為下面的模塊:
官方文檔是后續(xù)學(xué)習(xí)過程中,依賴的重要學(xué)習(xí)資料。
如果要去了解版本的更新內(nèi)容,
可以到 https://github.com/spring-projects/spring-boot/wiki#release-notes
查看版本日志。
以上就是SpringBoot2學(xué)習(xí)之springboot與spring區(qū)別分析的詳細(xì)內(nèi)容,更多關(guān)于springboot與spring區(qū)別的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java實現(xiàn)企業(yè)發(fā)放的獎金根據(jù)利潤提成問題
這篇文章主要介紹了請利用數(shù)軸來分界,定位。注意定義時需把獎金定義成長整型,需要的朋友可以參考下2017-02-02Java中的布隆過濾器原理實現(xiàn)和應(yīng)用
Java中的布隆過濾器是一種基于哈希函數(shù)的數(shù)據(jù)結(jié)構(gòu),能夠高效地判斷元素是否存在于一個集合中。它廣泛應(yīng)用于緩存、網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)查詢等領(lǐng)域,在提高程序性能和減少資源消耗方面具有顯著優(yōu)勢2023-04-04詳解使用Spring的restTemplete進行Http請求
本篇文章主要介紹了詳解使用Spring的restTemplete進行Http請求,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06Java解析調(diào)用webservice服務(wù)的返回XML串詳解
這篇文章主要介紹了Java解析調(diào)用webservice服務(wù)的返回XML串詳解的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07