這篇文章將為大家詳細(xì)講解有關(guān)SpringCloud 和SpringBoot 有什么區(qū)別,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了市中免費建站歡迎大家使用!
一 . SpringBoot
1.簡介
Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。
SpringBoot是由Pivotal團隊在2013年開始研發(fā)、2014年4月發(fā)布第一個版本的全新開源的輕量級框架。它基于Spring4.0設(shè)計,不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進一步簡化了Spring應(yīng)用的整個搭建和開發(fā)過程。另外SpringBoot通過集成大量的框架使得依賴包的版本沖突,以及引用的不穩(wěn)定性等問題得到了很好的解決。
Spring框架是Java平臺上的一種開源應(yīng)用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應(yīng)用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過依賴注入實現(xiàn)控制反轉(zhuǎn)來實現(xiàn)管理對象生命周期容器化,利用面向切面編程進行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問,提供大量優(yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發(fā)者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關(guān)注點進行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問等功能均可以通過使用SpringAOP技術(shù)實現(xiàn)。Spring的事務(wù)管理框架為Java平臺帶來了一種抽象機制,使本地和全局事務(wù)以及嵌套事務(wù)能夠與保存點一起工作,并且?guī)缀蹩梢栽贘ava平臺的任何環(huán)境中工作。Spring集成多種事務(wù)模板,系統(tǒng)可以通過事務(wù)模板、XML或Java注解進行事務(wù)配置,并且事務(wù)框架集成了消息傳遞和緩存等功能。Spring的數(shù)據(jù)訪問框架解決了開發(fā)人員在應(yīng)用程序中使用數(shù)據(jù)庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數(shù)據(jù)對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數(shù)據(jù)訪問框架中提供支持,同時還可以與Spring的事務(wù)管理一起使用,為數(shù)據(jù)訪問提供了靈活的抽象。Spring框架最初是沒有打算構(gòu)建一個自己的WebMVC框架,其開發(fā)人員在開發(fā)過程中認(rèn)為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。
2.特點
SpringBoot所具備的特征有:
(1)可以創(chuàng)建獨立的 Spring應(yīng)用程序,并且基于其Maven或Gradle插件,可以創(chuàng)建可執(zhí)行的JARs和WARs;
(2)內(nèi)嵌Tomcat或Jetty等Servlet容器;
(3)提供自動配置的“starter”項目對象模型(POMS)以簡化 Maven配置;
(4)盡可能自動配置Spring容器;
(5)提供準(zhǔn)備好的特性,如指標(biāo)、健康檢查和外部化配置;
(6)絕對沒有代碼生成,不需要XML配置。
3.重要策略
SpringBoot框架中還有兩個非常重要的策略: 開箱即用和 約定優(yōu)于配置。開箱即用,Outofbox,是指在開發(fā)過程中,通過在MAVEN項目的pom文件中添加相關(guān)依賴包,然后使用對應(yīng)注解來代替繁瑣的XML配置文件以管理對象的生命周期。這個特點使得開發(fā)人員擺脫了復(fù)雜的配置工作以及依賴的管理工作,更加專注于業(yè)務(wù)邏輯。約定優(yōu)于配置,Convention over configuration,是一種由SpringBoot本身來配置目標(biāo)結(jié)構(gòu),由開發(fā)者在結(jié)構(gòu)中添加信息的軟件設(shè)計范式。這一特點雖降低了部分靈活性,增加了BUG定位的復(fù)雜性,但減少了開發(fā)人員需要做出決定的數(shù)量,同時減少了大量的XML配置,并且可以將代碼編譯、測試和打包等工作自動化。
SpringBoot應(yīng)用系統(tǒng)開發(fā)模板的基本架構(gòu)設(shè)計從前端到后臺進行說明:前端常使用模板引擎,主要有 FreeMarker和Thymeleaf,它們都是用 Java語言編寫的,渲染模板并輸出相應(yīng)文本,使得界面的設(shè)計與應(yīng)用的邏輯分離,同時前端開發(fā)還會使用到Bootstrap、AngularJS、J Query等;在瀏覽器的數(shù)據(jù)傳輸格式上采用 Json,非xml,同時提供 RESTfulAPI; SpringMVC框架用于數(shù)據(jù)到達(dá)服務(wù)器后處理請求;到數(shù)據(jù)訪問層主要有Hibernate、 MyBatis、JPA等持久層框架;數(shù)據(jù)庫常用 MySQL;開發(fā)工具推薦IntelliJIDEA。
4. 核心原理
SpringBoot的核心原理是基于SpringMVC無配置文件完全注解化 + 內(nèi)置Tomcat實現(xiàn)SpringBoot框架,使用Main函數(shù)啟動.
二 . SpringCloud
1.簡介
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動和部署。Spring Cloud并沒有重復(fù)制造輪子,它只是將各家公司開發(fā)的比較成熟、經(jīng)得起實際考驗的服務(wù)框架組合起來,通過Spring Boot風(fēng)格進行再封裝屏蔽掉了復(fù)雜的配置和實現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。
SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開發(fā)的一個個單體微服務(wù)整合并管理起來,為各個微服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、等集成服務(wù)
SpringBoot不依賴于SpringCloud,SpringCloud依賴于SpringBoot,屬于依賴關(guān)系
2.特點
優(yōu)點:
1) 服務(wù)拆分粒度更細(xì),有利于資源重復(fù)利用,有利于提高開發(fā)效率
2) 可以更精準(zhǔn)的制定優(yōu)化服務(wù)方案,提高系統(tǒng)的可維護性
3) 微服務(wù)架構(gòu)采用去中心化思想,服務(wù)之間采用Restful等輕量級通訊,比ESB更輕量
4) 適于互聯(lián)網(wǎng)時代,產(chǎn)品迭代周期更短
缺點:
1) 微服務(wù)過多,治理成本高,不利于維護系統(tǒng)
2) 分布式系統(tǒng)開發(fā)的成本高(容錯,分布式事務(wù)等)對團隊挑戰(zhàn)大
總的來說優(yōu)點大過于缺點,目前看來SpringCloud是一套非常完善的分布式框架,目前很多企業(yè)開始用微服務(wù)
3. 常用組件
SpringCloud 主要涉及的組件包括 :
1) Eureka : 服務(wù)注冊中心,用于管理服務(wù)(服務(wù)的注冊、發(fā)現(xiàn))
2)Ribbon : 負(fù)載均衡,用于搭建集群環(huán)境.(同一個功能配置多個tomcat,負(fù)載均衡會選擇多個tomcat其中一個)
3)Hystrix : 熔斷器,與正主斷了聯(lián)系,使用備選方案.能夠防止服務(wù)的雪崩效應(yīng).
4)Feign : 服務(wù)調(diào)用/遠(yuǎn)程調(diào)用 , 服務(wù)與服務(wù)之間進行調(diào)用,類似于HttpClient
5)Zuul : 服務(wù)網(wǎng)關(guān),用于統(tǒng)一程序入口,方便進行管理,提供路由轉(zhuǎn)發(fā)、請求過濾等功能
4.核心原理
想了解更多關(guān)于SpringCloud的詳細(xì)信息的話可以訪問以下內(nèi)容
<<超詳細(xì)的SpringCloud底層原理>>
三 . 區(qū)別
SpringBoot 和 SpringCloud 有以下區(qū)別 :
1) SpringBoot專注于快速方便的開發(fā)單個個體微服務(wù)。
2) SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開發(fā)的一個個單體微服務(wù)整合并且管理起來,為各個服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、精選決策、分布式會話等集成服務(wù)。
3) SpringBoot可以離開SpringCloud獨立開發(fā)項目,但是SpringCloud離不開SpringBoot,屬于依賴關(guān)系。
4) SpringBoot專注于快速、方便的開發(fā)單個微服務(wù)個體,SpringCloud關(guān)注全局的服務(wù)治理框架。
這就是小喵今天所要分享的知識,
結(jié)尾再附上一個小小的面試題 :
什么是SpringBoot ? 什么是SpringCloud ?兩者之間有什么區(qū)別?
1) springboot是一個快速開發(fā)框架,專注于快速方便的開發(fā)單個個體的微服務(wù),
為什么是快速開發(fā)框架: 它是一個服務(wù)于spring框架的框架,它簡化了配置文件,可以快速構(gòu)建web應(yīng)用,內(nèi)置tomcat,無需打包部署,直接運行。
核心原理:是基于SpringMVC無配置文件完全注解化+內(nèi)置tomcat實現(xiàn)SpringBoot框架,使用Main函數(shù)啟動.
2) SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開發(fā)的一個個單體微服務(wù)整合并管理起來,為各個微服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、等集成服務(wù)
3) SpringBoot不依賴于SpringCloud,SpringCloud依賴于SpringBoot,屬于依賴關(guān)系
關(guān)于SpringCloud 和SpringBoot 有什么區(qū)別就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享標(biāo)題:SpringCloud和SpringBoot有什么區(qū)別
文章起源:http://jinyejixie.com/article38/pgihsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、外貿(mào)網(wǎng)站建設(shè)、App設(shè)計、電子商務(wù)、網(wǎng)站設(shè)計公司、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)