Spring、SpringBoot、SpringCloud的關系區別


首先我們做技術,尤其是java開發人員,應該對Spring、SpringBoot、SpringCloud 三個家伙一點不陌生。

結合發展史Spring出現的最早,后面為了可以讓開發人員偷懶,簡化配置,就是約定猶於配置或者說大於,進而出現可SpringBoot,再往后就是要進入SpringCloud時代了。

1、Spring:是一個生態體系(也可以說是技術體系),是集大成者,它包含了Spring Framework、Spring Boot、Spring Cloud等(還包括Spring Cloud data flow、spring data、spring integration、spring batch、spring security、spring hateoas),是一站式的輕量級的java開發框架,核心是控制反轉(IOC)和面向切面(AOP),針對於開發的WEB層(springMvc)、業務層(Ioc)、持久層(jdbcTemplate)等都提供了多種配置解決方案;

2、其實還有一個SpringMvc:是spring基礎之上的一個MVC框架,是基於Servlet 的主要解決WEB開發的問題路徑映射和視圖渲染等;

3、SpringBoot:使用了默認大於配置的理念,集成了快速開發的spring多個插件,同時自動過濾不需要配置的多余的插件,簡化了項目的開發配置流程,一定程度上取消xml配置,是一套快速配置開發的腳手架,能快速開發單個微服務;

4、SpringCloud:大部分的功能插件都是基於springBoot去實現的,springCloud關注於全局的微服務整合和管理,將多個springBoot單體微服務進行整合以及管理;  springCloud依賴於springBoot開發,而springBoot可以獨立開發;

到這里大家也是對這四個家伙有了大致了解,但是,前面有說SpringCloud時代,也是是名聲大了去的為更高效的解決大數據,高可用,大並發······等問題的分布式,微服務模式時代!

說到這里我就要談談我的個人看法了,首先Spring是核心,然后是SpringBoot,嚴格意義上來講這倆是父子關系,是一類,而SpringCloud更像一個由SpringBoot組建起來的一個家庭,用了近兩年的SpringCloud慢慢發現其實他的噱頭成分越來越大,在當下互聯網大環境下,其實SpringCloud只能說是為分布式微服務提供了一套參考方案,可以說不是唯一特有的不可取而代之的

SpringCloud的相關組件:

Spring Cloud Config:它是一個配置中心解決方案,還必須依靠Bus總線,RabbitMQ等實現,配置起來相對復雜,但是數據一致性可靠性還是比較高的,另外攜程的apollo、還是百度的disconf,貌似都遠比它強大好用的多

Spring Cloud Eureka:他是一個注冊中心的組件,同類的可以有ZK,Nacos等;

Spring Cloud Zuul:網關也並不是非Spring Cloud netflix下的zuul不可

···

總而言之,言而總之:(個人愚見)

1.在針對性的學習技術上,重點應放在Spring,SpringBoot方向,尤其SpringBoot可以說是當下java web項目的支柱技術;

2.從成本考慮,可分為大小公司,在項目架構色選擇上,整體來說采用SpringCloud架構的的項目代價成本相對較高,不管是從開發,還是運維都是這樣

3.就算是項目架構采用分布式,微服務,前后端分離,SpringCloud生態模式,也不應該把眼觀局限在SpringCloud的極大組件上,可以考慮集成同類的開源的相關組件也不似不錯的選擇

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM