自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

阿里一面:講一講 Spring、SpringMVC、SpringBoot、SpringCloud 之間的關(guān)系?

開發(fā) 前端
Spring 全家桶了為了解決不同場(chǎng)景的問(wèn)題,逐漸演化出多套生態(tài)環(huán)框,如:Spring、SpringMVC、SpringBoot、SpringCloud.

大家好,我是Tom哥~

搞后端開發(fā)的同學(xué),對(duì) Spring 家族一定不陌生。

Spring 全家桶了為了解決不同場(chǎng)景的問(wèn)題,逐漸演化出多套生態(tài)環(huán)框,如:Spring、SpringMVC、SpringBoot、SpringCloud

它們之間的關(guān)系:

Spring

Spring 一站式的輕量級(jí)的java開發(fā)框架,采用容器化管理,創(chuàng)建各種 Bean 實(shí)例,并維護(hù)著 bean 與bean之間的關(guān)系。

兩大核心利器:

  • IOC(控制反轉(zhuǎn))
  • AOP(面向切面)

為Java應(yīng)用程序開發(fā)提供了全面的基礎(chǔ)架構(gòu)支持。包含很多開箱即用的模塊,如:SpringJDBC、SpringSecurity、SpringAOP、SpringORM,提高了應(yīng)用開發(fā)的效率。

Spring MVC

一個(gè)網(wǎng)站通常有前臺(tái)頁(yè)面和后臺(tái)處理邏輯,為了打通這層關(guān)系,衍生出類似 struts2 框架。專門解決前臺(tái)頁(yè)面與后端數(shù)據(jù)處理之間的映射關(guān)系。

當(dāng)然,Spring 家族為了維護(hù)其生態(tài)地位,把這種 MVC 模式的優(yōu)勢(shì)吸收了進(jìn)來(lái),加以改造,于是就誕生了 Spring MVC

Spring MVC是 Spring 的 web 框架。

通過(guò)Dispatcher Servlet、ModelAndView和View Resolver,開發(fā)web應(yīng)用變得很容易。主要針對(duì)的是帶頁(yè)面的系統(tǒng)開發(fā),URL路由、Session、模板引擎、靜態(tài)Web資源等等。

SpringMVC = Struts2 + Spring

處理流程:

Spring MVC 框架與其他 Web MVC 框架一樣,是請(qǐng)求驅(qū)動(dòng)的,圍繞一個(gè)中央 Servlet 設(shè)計(jì),該 Servlet 將請(qǐng)求分派給控制器并提供其他功能以促進(jìn) Web 應(yīng)用程序的開發(fā)。然而,Spring 的 DispatcherServlet 不僅僅如此。它與 Spring IoC 容器完全集成,因此允許您使用 Spring 的其他功能。

Spring Boot

Spring 配置復(fù)雜,xml文件有大量的bean定義,開發(fā)起來(lái)繁瑣。

另外,分布式時(shí)代,微服務(wù)盛行,為了統(tǒng)一后端框架,便于運(yùn)維維護(hù),開始推行 Spring Boot。

Spring Boot 是Spring框架的擴(kuò)展,提供更加 豐富的注解,可以參考之前文章 Spring Boot 常用注解一網(wǎng)打盡

同時(shí),將Servlet容器集成到框架中,如:Tomcat、Jetty、Undertow,我們開發(fā)時(shí)不需要再手動(dòng)在 IDEA 中配置 tomcat 的路徑,只需要main函數(shù)啟動(dòng)。

Spring Boot 框架相對(duì)于 Spring MVC 框架來(lái)說(shuō),更專注于后端接口,不開發(fā)前端頁(yè)面,推崇前后分離。

根據(jù) 約定勝于配置 原則,與市場(chǎng)主流的開源框架打通, 設(shè)計(jì)了 Starter 和 AutoConfiguration 機(jī)制,簡(jiǎn)化配置流程,通過(guò)簡(jiǎn)單的jar包引入,快速具備組件集成能力。大大提高了程序員的開發(fā)效率。

下面列舉了常用的 Starter 組件:

  • spring-boot-starter:核心啟動(dòng)器,包含了自動(dòng)配置、日志和YAML
  • spring-boot-starter-web:構(gòu)建Web應(yīng)用,使用 Tomcat 作為內(nèi)嵌容器
  • spring-boot-starter-amqp:通過(guò)spring-rabbit來(lái)支持AMQP協(xié)議(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數(shù)據(jù)
  • spring-boot-starter-logging:Spring Boot默認(rèn)的日志框架Logback
  • 更多,這里就不一一列舉了

歷史文章:

一文讀懂Spring Boot各模塊組件依賴關(guān)系

Spring Cloud

分布式時(shí)代,系統(tǒng)間需要打通、組成集群,從而具備更大吞吐能力。我們會(huì)將一個(gè)單體項(xiàng)目拆分成多個(gè)微服務(wù),每個(gè)微服務(wù)系統(tǒng)獨(dú)立技術(shù)選型、開發(fā)、部署上線,各個(gè)微服務(wù)之間打通、相互協(xié)調(diào),從而完成全流程服務(wù)。

當(dāng)然,為了降低不同微服務(wù)系統(tǒng)間的差異化接入成本,通常都是統(tǒng)一基于 Spring Boot 構(gòu)建微服務(wù)系統(tǒng)。

Spring Cloud 將多個(gè) Spring Boot 單體微服務(wù)整合、管理,是一系列框架的有序集合,利用Spring Boot的開發(fā)便利性簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā)。

Spring Cloud 關(guān)注 微服務(wù)整合、管理的服務(wù)治理框架,具有生態(tài)定位,提供豐富的組件框架,如:

  • 服務(wù)注冊(cè)、發(fā)現(xiàn)
  • 服務(wù)間調(diào)用
  • 負(fù)載均衡
  • 網(wǎng)關(guān)
  • 配置中心
  • 斷路器
  • 消息總線
  • 監(jiān)控 等

鏈接:https://www.springcloud.cc/

最后小結(jié)

1、Spring 框架就像一個(gè)家族,有眾多衍生產(chǎn)品,如:Spring Boot 、Spring security、jpa等,但他們的基礎(chǔ)都是Spring的IOC、AOP等,IOC提供了依賴注入的容器,AOP解決了面向切面編程,在此兩者基礎(chǔ)上實(shí)現(xiàn)其他延伸產(chǎn)品的高級(jí)功能

2、Spring MVC 是基于Servlet的一個(gè)MVC框架,主要解決Web開發(fā)問(wèn)題,因?yàn)镾pring的配置非常復(fù)雜,各種XML、JavaConfig、servlet處理起來(lái)比較繁瑣

3、為了簡(jiǎn)化開發(fā)者的使用,從而創(chuàng)造性的推出了Spring Boot框架,約定勝于配置,簡(jiǎn)化Spring MVC的配置流程。

區(qū)別于Spring MVC的是,Spring Boot專注于微服務(wù)的接口開發(fā),和前端解耦。雖然Spring Boot也可以做成Spring MVC前后臺(tái)一起開發(fā),但不符合Spring Boot框架的初衷。

4、對(duì)于Spring Cloud框架來(lái)說(shuō),它和Spring Boot一樣,關(guān)注的是微服務(wù)的開發(fā)。但Spring Cloud更關(guān)注的是多個(gè)微服務(wù)系統(tǒng)的整合和管理,相當(dāng)于多個(gè)Spring Boot框架的單體微服務(wù)。

本文轉(zhuǎn)載自微信公眾號(hào)「微觀技術(shù)」

 

責(zé)任編輯:姜華 來(lái)源: 微觀技術(shù)
相關(guān)推薦

2022-05-24 08:09:00

HadoopHiveSpark

2012-05-04 13:25:46

HTML5

2021-01-18 05:11:14

通信Nodejs進(jìn)程

2022-05-10 08:11:15

MySQL技巧結(jié)構(gòu)

2020-09-17 06:53:38

項(xiàng)目規(guī)范流程

2022-05-11 15:57:16

優(yōu)化SQL

2019-10-31 13:58:32

阿里電商系統(tǒng)

2022-05-11 22:15:51

云計(jì)算云平臺(tái)

2009-05-26 11:28:53

2024-10-15 10:59:18

Spring MVCJava開發(fā)

2025-03-28 08:10:00

Spring自動(dòng)裝配Java

2009-07-30 14:38:36

云計(jì)算

2020-09-19 17:46:20

React Hooks開發(fā)函數(shù)

2022-02-14 08:13:33

刪庫(kù)MySQL備份

2024-07-22 19:31:34

2025-03-20 09:59:55

Spring@ProfileJava

2024-05-15 16:41:57

進(jìn)程IO文件

2011-12-23 09:43:15

開源開放

2011-12-22 20:53:40

Android

2025-03-25 12:00:00

@Value?Spring開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)