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