大家好,我是Tom哥~
搞后端開發的同學,對 Spring 家族一定不陌生,
Spring 全家桶了為了解決不同場景的問題,逐漸演化出多套生態環框,如:Spring、SpringMVC、SpringBoot、SpringCloud
它們之間的關系:

Spring
Spring 一站式的輕量級的java開發框架,采用容器化管理,創建各種 Bean 實體,并維護著 bean 與bean之間的關系,
兩大核心利器:
-
IOC(控制反轉)
-
AOP(面向切面)
為Java應用程式開發提供了全面的基礎架構支持,包含很多開箱即用的模塊,如:SpringJDBC、SpringSecurity、SpringAOP、SpringORM,提高了應用開發的效率,
Spring MVC
一個網站通常有前臺頁面和后臺處理邏輯,為了打通這層關系,衍生出類似 struts2 框架,專門解決前臺頁面與后端資料處理之間的映射關系,
當然,Spring 家族為了維護其生態地位,把這種 MVC 模式的優勢吸收了進來,加以改造,于是就誕生了 Spring MVC
Spring MVC是 Spring 的 web 框架,
通過Dispatcher Servlet、ModelAndView和View Resolver,開發web應用變得很容易,主要針對的是帶頁面的系統開發,URL路由、Session、模板引擎、靜態Web資源等等,
SpringMVC = Struts2 + Spring
處理流程:

Spring MVC 框架與其他 Web MVC 框架一樣,是請求驅動的,圍繞一個中央 Servlet 設計,該 Servlet 將請求分派給控制器并提供其他功能以促進 Web 應用程式的開發,然而,Spring 的 DispatcherServlet 不僅僅如此,它與 Spring IoC 容器完全集成,因此允許您使用 Spring 的其他功能,
Spring Boot
Spring 配置復雜,xml檔案有大量的bean定義,開發起來繁瑣,
另外,分布式時代,微服務盛行,為了統一后端框架,便于運維維護,開始推行 Spring Boot,
Spring Boot 是Spring框架的擴展,提供更加 豐富的注解,可以參考之前文章 Spring Boot 常用注解一網打盡
同時,將Servlet容器集成到框架中,如:Tomcat、Jetty、Undertow,我們開發時不需要再手動在 IDEA 中配置 tomcat 的路徑,只需要main函式啟動,
Spring Boot 框架相對于 Spring MVC 框架來說,更專注于后端介面,不開發前端頁面,推崇前后分離,
根據 約定勝于配置 原則,與市場主流的開源框架打通, 設計了 Starter 和 AutoConfiguration 機制,簡化配置流程,通過簡單的jar包引入,快速具備組件集成能力,大大提高了程式員的開發效率,
下面列舉了常用的 Starter 組件:
-
spring-boot-starter:核心啟動器,包含了自動配置、日志和YAML
-
spring-boot-starter-web:構建Web應用,使用 Tomcat 作為內嵌容器
-
spring-boot-starter-amqp:通過spring-rabbit來支持AMQP協議(Advanced Message Queuing Protocol
-
spring-boot-starter-aop:面向方面的編程即AOP,包括spring-aop和AspectJ
-
spring-boot-starter-groovy-templates:支持Groovy模板引擎
-
spring-boot-starter-data-redis:使用Redis 和 Spring Data Redis,以及Jedis 客戶端
-
spring-boot-starter-data-elasticsearch:支持ElasticSearch搜索和分析引擎
-
spring-boot-starter-data-jpa:支持 Java Persistence API
-
spring-boot-starter-data-mongodb:支持MongoDB資料
-
spring-boot-starter-logging:Spring Boot默認的日志框架Logback
-
更多,這里就不一一列舉了
歷史文章:
- 一文讀懂Spring Boot各模塊組件依賴關系
Spring Cloud
分布式時代,系統間需要打通、組成集群,從而具備更大吞吐能力,我們會將一個單體專案拆分成多個微服務,每個微服務系統獨立技術選型、開發、部署上線,各個微服務之間打通、相互協調,從而完成全流程服務,
當然,為了降低不同微服務系統間的差異化接入成本,通常都是統一基于 Spring Boot 構建微服務系統,
Spring Cloud 將多個 Spring Boot 單體微服務整合、管理,是一系列框架的有序集合,利用Spring Boot的開發便利性簡化了分布式系統基礎設施的開發,
Spring Cloud 關注 微服務整合、管理的服務治理框架,具有生態定位,提供豐富的組件框架,如:
-
服務注冊、發現
-
服務間呼叫
-
負載均衡
-
網關
-
配置中心
-
斷路器
-
訊息總線
-
監控 等

鏈接:https://www.springcloud.cc/
最后小結
1、Spring 框架就像一個家族,有眾多衍生產品,如:Spring Boot 、Spring security、jpa等,但他們的基礎都是Spring的IOC、AOP等,IOC提供了依賴注入的容器,AOP解決了面向切面編程,在此兩者基礎上實作其他延伸產品的高級功能
2、Spring MVC 是基于Servlet的一個MVC框架,主要解決Web開發問題,因為Spring的配置非常復雜,各種XML、JavaConfig、servlet處理起來比較繁瑣
3、為了簡化開發者的使用,從而創造性的推出了Spring Boot框架,約定勝于配置,簡化Spring MVC的配置流程,
區別于Spring MVC的是,Spring Boot專注于微服務的介面開發,和前端解耦,雖然Spring Boot也可以做成Spring MVC前后臺一起開發,但不符合Spring Boot框架的初衷,
4、對于Spring Cloud框架來說,它和Spring Boot一樣,關注的是微服務的開發,但Spring Cloud更關注的是多個微服務系統的整合和管理,相當于多個Spring Boot框架的單體微服務,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/413896.html
標籤:java
下一篇:1月17號-Tomcat
