javascript
Spring、SpringMVC、SpringBoot、SpringCloud的关系分享
最近在做一些技術架構原型,發現Spring已經跟三四年前發生了很多的區別,技術的迭代日新月異,再不學習就趕不上時代的腳步 ,以下是最近關于Spring、SpringMVC、SpringBoot、SpringCloud幾者的概念說明及關系分享:
?
-
概念說明:
-
Spring
Spring是一個一站式的輕量級的java開發框架,核心是控制反轉(IOC)和面向切面(AOP),針對于開發的WEB層(springMvc)、業務層(Ioc)、持久層(jdbcTemplate)等都提供了多種配置解決方案;
-
SpringMVC
SpringMVC 是在Spring基礎之上的一個MVC框架,主要處理web開發的路徑映射和視圖渲染,屬于Spring框架中WEB層開發的一部分;
-
SpringBoot
Spring Boot使用了約定大于配置(PS:很多博客寫的是默認大于配置,嚴格來說,約定更精確)的理念,集成了快速開發的spring多個插件,同時自動過濾不需要配置的多余的插件,簡化了項目的開發配置流程,一定程度上取消xml配置,是一套快速配置開發的腳手架,能快速開發單個微服務;
-
SpringCloud
Spring Cloud大部分的功能插件都是基于Spring Boot去實現的,Spring Cloud關注于全局的微服務整合和管理,將多個Spring Boot單體微服務進行整合以及管理;? Spring Cloud依賴于Spring Boot開發,而Spring Boot可以獨立開發;
-
關系分析:
在關系分析上,主要區分的是Spring和Spring?MVC、Spring?MVC和Spring Boot、Spring?和Spring?Boot、Spring?Boot和Spring?Cloud之間的關系,具體如下:
Spring和Spring MVC:
?
SpringMVC 是在Spring基礎之上的一個MVC框架,主要處理WEb應用開發
?
Spring MVC和Spring Boot:
?
SpringBoot框架相對于Spring MVC框架來說,更專注于開發微服務后臺接口,不開發前端視圖;
?
Spring 、Spring?MVC和Spring?Boot:
?
Spring 最初利用“工廠模式”( DI )和“代理模式”( AOP )解耦應用組件。大家覺得挺好用,于是按照這種模式搞了一個 MVC 框架(一些用 Spring 解耦的組件),用開發 web 應用( Spring MVC )。然后有發現每次開發都要搞很多依賴,寫很多樣板代碼很麻煩,于是搞了一些懶人整合包( starter ),這套就是 Spring Boot 。?
?
Spring Boot和Spring Cloud:
?
一個偏宏觀,一偏微觀?
Spring Boot就是醫院里面一個一個的科室,而Cloud就是把Boot組合起來的提供對外的綜合醫院。?
Spring Boot可以單獨使用,它不依賴于Spring Cloud?
1. 而Spring Cloud必然依賴于Spring Boot,屬于依賴關系。?
2. Spring Boot專注于快速方便的開發單個個體微服務。?
3. Spring Cloud是關注全局的微服務協調整理治理框架,它將Spring Boot開發的一個個單體微服務整合并管理起來,
為各個微服務之間提供,配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等集成服務。
?
-
選型建議:
現在技術發展的趨勢,從我的判斷來看,遵循小而美、精細分工、大道至簡的原則,就像Spring?Boot一樣,越簡單好用越流行,未來的市場也越廣泛,同樣的像SaaS、Flutter、Idea等不管是單獨的技術還是工具,大而全已經不能滿足復雜的應用場景,我們更喜歡針對某一個應用場景有一個非常好的支撐,然后又能跟做彈性伸縮、負載均衡、自由搭配組合,所以從目前來看,在技術選型上,
如果是新的項目,建議直接從Spring?Boot開始搭建框架,建設項目,前端或移動端,則使用Flutter的Dart語言編寫,搭配Docker、K8S等技術,再把MySQL的開源版本、或者PostgreSQL、MongoDB、Hbase等用起來,現在的技術上手速度已經很快了,相對于三四年前,學習成本很低,資源也比較豐富,像阿里云學院、華為云學院、慕課網等均有免費的入門或實戰視頻,只要認真學習和聯系,很多都可以融會貫通,再結合實際的項目,掌握起來并不難
如果是舊的項目,或是比較陳舊的框架,建議盡快使用當前流行且穩定的技術框架進行升級改造,未來技術的迭代速度會更快,很多技術之間雖然有所差異,但是基本也都是在相互借鑒彼此的優點,并進行吸收和再發展,所以只要基礎扎實,隨著技術的發展,未來的業務應用或產品研發,只會越來越容易
更多的時候,我們所要關注的是技術核心的理念和思想,以及關注業務的發展及生態的建設!
?
?
?
總結
以上是生活随笔為你收集整理的Spring、SpringMVC、SpringBoot、SpringCloud的关系分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速构建网站或移动端页面:关于Boots
- 下一篇: Spring 实践 -拾遗