javascript
SpringBoot理解
為什么要用Springboot?
經(jīng)過(guò)前面SSM框架整合以及員工管理系統(tǒng)的學(xué)習(xí),對(duì)web開(kāi)發(fā)框架有了簡(jiǎn)單的認(rèn)識(shí),現(xiàn)在又蹦出來(lái)個(gè)Springboot?使用SSM框架挺好的,為什么要使用springboot呢?這是個(gè)很頭疼的問(wèn)題,為此使用Springboot之后,我將SSM和Springboot框架做個(gè)簡(jiǎn)單的對(duì)比?來(lái)體現(xiàn)出來(lái)他們之間的差別,嘗試了解為什么使用SpringBoot。
傳統(tǒng)項(xiàng)目和Springboot的區(qū)別
傳統(tǒng)的項(xiàng)目:整合SSM時(shí)需要考慮各種配置文件,jar包沖突問(wèn)題,整合起來(lái)非常繁瑣,開(kāi)發(fā)完畢的項(xiàng)目以war包的形式放入Tomcatweb容器也就是Tomcat的webapps目錄中,然后Tomcat啟動(dòng)執(zhí)行。
在SSM框架的學(xué)習(xí)過(guò)程中,基本上很大一部分時(shí)間都是在學(xué)習(xí)怎么整合SpringMVC,怎么整合mybatis等,怎么整合redis,怎么整合message等,整合過(guò)程異常繁瑣,各種jar包之間由于沖突問(wèn)題報(bào)各種莫名奇妙的錯(cuò)誤。而在使用各個(gè)框架的時(shí)候其難度并不大,很大的一部分時(shí)間花在了固定模式的整合上,當(dāng)時(shí)為了整合SSM花了將近3天的時(shí)間,參考了網(wǎng)上很多的例子(網(wǎng)上的例子魚(yú)龍混雜,很難有比較完美的例子能夠?qū)⑵涿恳徊皆趺磁f(shuō)清楚,為此我專(zhuān)門(mén)使用了最新的spring版本,最新的springMVC版本以及最新的mybaitis版本將其整合過(guò)程做了詳細(xì)的講解,希望以后對(duì)SSM的環(huán)境搭建不在浪費(fèi)大量的時(shí)間)才得以保證SSM完美的整合整合過(guò)程可以參見(jiàn)SSM入門(mén)實(shí)踐-員工管理系統(tǒng)實(shí)現(xiàn)。實(shí)際的開(kāi)發(fā)過(guò)程中使用各個(gè)框架中基本上沒(méi)有什么難度,但是又必須得整合(各個(gè)框架確實(shí)很好用,能將繁瑣的不必要的代碼通過(guò)配置的方式得以實(shí)現(xiàn),整個(gè)項(xiàng)目的代碼結(jié)構(gòu)很清晰)。
Springboot項(xiàng)目:
什么是Springboot?
我這邊專(zhuān)門(mén)查閱了官方的文檔定義和目標(biāo):
| Spring Boot makes it easy to create stand-alone, production-grade Spring-based Applications that you can run. We take an opinionated view of the Spring platform and third-party libraries, so that you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. You can use Spring Boot to create Java applications that can be started by using java -jar or more traditional war deployments. We also provide a command line tool that runs “spring scripts”. Our primary goals are:
|
Springboot是一個(gè)快速開(kāi)發(fā)框架,能夠幫助我們快速的整合各種第三方框架(通過(guò)maven依賴(lài)的方式將比較繁瑣的固定包依賴(lài)關(guān)系通過(guò)maven繼承的方式全部依賴(lài)起來(lái)),完全采用注解化,在使用Springboot的過(guò)程中基本上沒(méi)有使用過(guò)XML,以簡(jiǎn)化XML的配置,其內(nèi)置HTTP服務(wù)器(Tomcat,jetty),默認(rèn)嵌入的是Tomcat服務(wù)器,最終以Java應(yīng)用程序進(jìn)行執(zhí)行,當(dāng)然也可以部署為傳統(tǒng)的war包。
SpringBoot框架包含內(nèi)容:
關(guān)于Springboot的微服務(wù)?網(wǎng)上大家都說(shuō)的的很多,說(shuō)Springboot是一個(gè)微服務(wù)架構(gòu)?關(guān)于什么是微服務(wù)這個(gè)我目前還沒(méi)有很好的理解,這個(gè)貌似Springboot和微服務(wù)沒(méi)有多大關(guān)系,Springboot和微服務(wù)有關(guān)系,但應(yīng)該不是微服務(wù)框架,真正的微服務(wù)在Springcloud中體現(xiàn)。
微服務(wù)通信技術(shù)是HTTP+Json(restful)格式的輕量級(jí)的傳輸,而Springboot的web組件默認(rèn)集成了SpringMVC,既然SpringBoot默認(rèn)集成的組件是SpringMVC。
關(guān)于Springboot的學(xué)習(xí)本身框架,因?yàn)槠浔旧肀容^簡(jiǎn)單,因?yàn)槠浔旧砭褪且粋€(gè)快速集成框架。其核心就是能夠快速的幫我們快速的整合第三方框架。
SpringBoot的核心原理
1:將第三方j(luò)ar包通過(guò)maven繼承的方式將常用的依賴(lài)關(guān)系幫助我們封裝好了,只要引入一個(gè)依賴(lài)就可以了。
2:在Springboot中是沒(méi)有web.xml的,那么怎么給Tomcat運(yùn)行的呢?
通過(guò)前面的學(xué)習(xí)即SSM入門(mén)實(shí)踐,我們了解到Tomcat啟動(dòng)時(shí)會(huì)加載web.xml以加載spring和啟動(dòng)springmvc。
但是SpringBoot啟動(dòng)SpringMVC的時(shí)候是沒(méi)有傳統(tǒng)的配置文件的(Springmvc-config.xml),以及web.xml,是如何啟動(dòng)的呢?
SpringBoot完全采用注解化,并且在Spring3.0之后可以采用注解方式啟動(dòng)SpringMVC(也就是使用注解啟動(dòng)SpringMVC),Springboot中內(nèi)置嵌入Http服務(wù)器,可以使用Java來(lái)創(chuàng)建Tomcat,然后使用Tomcat的類(lèi)加載器加載target目錄中的classes,一旦遇到@EnableWebMVC這樣的注解時(shí)將會(huì)去啟動(dòng)SpringMVC。整個(gè)過(guò)程也就是使用Java代碼來(lái)啟動(dòng)SpringMVC。
SpringBoot和SpringCloud的關(guān)系(區(qū)別)?
前面有提到Springcloud?又是一個(gè)新名字。
那么為什么要用SpringBoot而不使用SpringCloud呢?
這里對(duì)這兩個(gè)的關(guān)系捋一捋。
SpringBoot:上文已經(jīng)提到過(guò),springboot其實(shí)是一個(gè)快速開(kāi)發(fā)框架,能夠幫助我們快速整合第三方常用框架(也就是說(shuō)Springboot不是說(shuō)將任何的框架都給整合起來(lái)了,比如說(shuō)Springmvc,mybatis,redis,rabbitMQ等,在github上能夠排的上名的礦建基本上都被整合進(jìn)去了,但不代表你寫(xiě)的框架SpringBoot就會(huì)整合的,只有當(dāng)達(dá)到一定量的時(shí)候Springboot才會(huì)考慮整合),完全采用注解化來(lái)簡(jiǎn)化XML配置,最終是以java應(yīng)用程序進(jìn)行執(zhí)行。
SpringCloud:是一套目前完整的微服務(wù)框架,微服務(wù)里面遇到的各種問(wèn)題,SpringCloud都可以幫你解決,功能非常強(qiáng)大,例如注冊(cè)中心、客戶(hù)端調(diào)用工具、服務(wù)治理(負(fù)載均衡、斷路器、分布式配置中心、網(wǎng)關(guān)、服務(wù)鏈路),里面東西非常多,后續(xù)再了解。
上文說(shuō)過(guò)微服務(wù)通信技術(shù)是HTTP+Json(restful)格式的輕量級(jí)的傳輸,而Springboot的web組件默認(rèn)集成了SpringMVC,既然SpringBoot默認(rèn)集成的組件是SpringMVC,SpringCloud依賴(lài)于SpringBoot實(shí)現(xiàn)微服務(wù),使用SpringMVC編寫(xiě)微服務(wù)接口。因此Springboot不是微服務(wù)框架,可以這么理解SpringBoot+SpringCloud是微服務(wù)。
使用Springboot的目的只是實(shí)現(xiàn)快速開(kāi)發(fā)。
總結(jié):
如果項(xiàng)目中只是單純的集成SpringBoot其目的是實(shí)現(xiàn)快速開(kāi)發(fā),快速整合各種框架用
微服務(wù)開(kāi)發(fā):會(huì)涉及RPC遠(yuǎn)程通訊技術(shù)、服務(wù)治理等
SpringBoot與SpringMVC的關(guān)系
SpringBoot中的web組件集成了SpringMVC框架,使用Java來(lái)啟動(dòng)SpringMVC。
附錄簡(jiǎn)單SpringBoot學(xué)習(xí)示例
主要講解Http部分內(nèi)容以及文件上傳下載內(nèi)容,下載地址
SpringBoot示例代碼_springboot的理解-Web開(kāi)發(fā)代碼類(lèi)資源-CSDN下載
總結(jié)
以上是生活随笔為你收集整理的SpringBoot理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【欢聚时代】HR独家传授YY笔试面经小秘
- 下一篇: C51数码管动态显示+AD转换