1. 程式人生 > >Spring、SpringMVC、Spring Boot、Spring Cloud 概念、關係及區別

Spring、SpringMVC、Spring Boot、Spring Cloud 概念、關係及區別

一、正面解讀:

  Spring主要是基於IOC反轉Beans管理Bean類,主要依存於SSH框架(Struts+Spring+Hibernate)這個MVC框架,所以定位很明確,Struts主要負責表示層的顯示,Spring利用它的IOC和AOP來處理控制業務(負責對資料庫的操作),Hibernate主要作用是資料的持久化到資料庫。
  SpringMVC是基於Spring的一個MVC框架,用以替代初期的SSH框架;(spring Framework本身沒有Web功能,Spring MVC使用WebApplicationContext類擴充套件ApplicationContext,使得擁有web功能)。
  Spring Boot是基於Spring4的條件註冊的一套快速開發整合包

  三者的發展與聯絡:
  Spring 最初利用“工廠模式”( DI )和“代理模式”( AOP )解耦應用元件。大家覺得挺好用,於是按照這種模式搞了一個 MVC 框架(一些用 Spring 解耦的元件),用開發 web 應用( SpringMVC )。然後有發現每次開發都要搞很多依賴,寫很多樣板程式碼很麻煩,於是搞了一些懶人整合包( starter ),這套就是 Spring Boot 。 
 
  升級雲-Spring Cloud:現在是大資料、雲時代,上雲是必然選擇,那麼Spring Cloud應運而生,

二、概念解讀

  什麼是spring
  關於spring的定義無論是從官方還是市面上已經很多能夠清晰明瞭的做出解釋了。我姑且簡單定義它為一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器,Java 開發框架,至於控制反轉、面向切面、輕量級、容器等這些自行百度,很多大牛解釋的非常清楚

  什麼是springMVC
  這裡我姑且把名詞分開來講、spring與mvc可以更好地解釋什麼是springMvc,MVC為現代web專案開發的一種很常見的模式,簡言之C(控制器)將V(檢視、使用者客戶端)與M(模組,業務)分開構成了MVC ,業內常見的mvc模式的開發框架有Struts1,Struts2等。spring作為專業的開發web專案的開源框架,springMvc為內部的一個模組環節,同樣採取mvc設計模式。 所以在使用spring開發web專案時,作為核心環節的MVC可以使用struts1/struts2/springMVc

  什麼是Spring-boot
  我的理解是這樣的、spring系列大家族裡面產品超級多了、那麼使用spring整合基礎框架作為專案架構時,大多數初級人員在搭建專案時話費了很多時間也未必能搭建明白。 spring-boot就是為了解決開發人員這個痛點而誕生的,說白了就是把以前的手動配置的過程自動化封裝了,提供預設的配置,借用大牛總結的特點就是:
   簡單易用,初學者和大牛都可以輕鬆上手,其中的註解會給使用者提供方便;
   Spring boot對第三方技術進行了很好的封裝和整合,提供了大量第三方介面;
   可以通過依賴自動配置,不需要XML等配置檔案
   還提供了安全等特性姑且先不做理會。

  完了現在boot總結就是可以快速啟動,快速構建專案,在配置檔案環節省去大量時間和精力,傻瓜式帶你進入專案大門,進行業務邏輯編寫。現在跟很多框架整合了 按照規範去配置 分分鐘上手寫程式碼

  什麼是spring-cloud

  微服務是當前架構領域的熱門話題,要想知道什麼是spring-cloud,麻煩先去弄清楚什麼是微服務。 spring-colud是一種雲端分散式架構解決方案,基於spring boot,在spring boot做較少的配置,便可成為 spring cloud 中的一個微服務。 說點有點冠冕堂皇了 我也沒用過、不過簡單理解為:spring cloud也就是提供了一些常用的分散式元件,都是應用型的,就根spring mvc差不多。

三、深入解讀Spring Cloud與 Spring Boot的概念與關係。
    什麼是 Spring Boot

    Spring Booti簡化了基於 Spring的應用開發,通過少量的程式碼就能建立一個獨立的、產品級別的 Spring應用。 Spring Boot為 Spring平臺及第三方庫提供開箱即用的設定,這樣你就可以有條不素地開始。多數 SpringBoot應用只需要很少的 Spring配置。
    Spring Boot是由 Pivotal團隊提供的全新框架,其設計目的是用來簡化新 Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。用我的話來理解,就是Spring Boot其實不是什麼新的框架,它預設配置了很多框架的使用方式,就像 maven整合了所有的jar包,Spring Boot整合了所有的框架。
    Spring Boot的核心思想就是約定大於配置,一切自動完成。採用 Spring Boot可以大大的簡化你的開發模式,所有你想整合的常用框架,它都有對應的元件支援。
    什麼是Spring Cloud
    Spring Cloud是一系列框架的有序集合。它利用 Spring Boot的開發便利性巧妙地簡化了分散式系統基礎設施的開發,如服務發現註冊、配置中心、訊息匯流排線、負載均衠、斷路器、資料監控等,都可以用 Spring Boot的開發風格做到一鍵啟動和部署。 Spring並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組臺起來,通過 Spring Boot風格進行再封裝遮蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分散式系統開發工具包。
    微服務是可以獨立部署、水平擴充套件、獨立訪問(或者有獨立的資料庫)的服務單元, Spring Cloud就是這些微服務的大管家,採用了微服務這種架構之後,專案的數量會非常多, Spring Cloud做為大管家就需要提供各種方案來維護整個生態。
    Spring Cloud就是一套分散式服務治理的框架,既然它是一套服務治理的框架,那麼它本身不會提供具體功能性的操作,更專注於服務之間的通訊、熔斷、監控等。因此就需要很多的元件來支援一套功能。
    Spring Boot和Spring Cloud的關係
    Spring Boot是 Spring的一套快速配置腳手架,可以基於 Spring Boot快速開發單個微服務, SpringCloud是一個基於 Spring Boot實現的雲應用開發工具; Spring Boot專注於快速、方便整合的單個微服務個體,Spring Cloud關注全域性的服務治理框架; Spring Boot使用了預設大於配置的理念,很多整合方案已經幫你選擇好了,能不配置就不配置, Spring Cloud很大的一部分是基於 Spring Boot來實現,可以不基於 Spring Boot嗎?不可以。 Spring Boot可以離開 Spring Cloud獨立使用開發專案,但是 Spring Cloud離不開 Spring Boot,屬於依賴的關係
  Spring-> Spring Boot> Spring Cloud這樣的關係
  Spring Cloud架構
  我們從整體來看一下 Spring Cloud主要的元件,以及它的訪間流程
  1、外部或者內部的非 Spring Cloud目都統一通過API閘道器(Zuul)來訪可內部服務.
  2、閘道器接收到請求後,從註冊中心( Eureka)獲取可用服務
  3、由 Ribbon進行均負載後,分發到後端的具體例項
  4、徹服務之間通過 Feign進行通訊處理業務
  5、 Hystrix負責處理服務超時熔斷
  6、 Turbine監控服務間的呼叫和焠斷相關指標
  綜上所述,是 Spring Cloud與 Spring Boot的概念及關係,為了更好的學習,請大家務必要熟練掌握相關內容

相關推薦

SpringSpringMVCSpring BootSpring Cloud 概念關係區別

一、正面解讀:   Spring主要是基於IOC反轉Beans管理Bean類,主要依存於SSH框架(Struts+Spring+Hibernate)這個MVC框架,所以定位很明確,Struts主要負責表示層的顯示,Spring利用它的IOC和AOP來處理控制業務(負責對

Spring SpringMVC SpringBoot SpringCloud概念關係區別

一、正面解讀:  Spring主要是基於IOC反轉Beans管理Bean類,主要依存於SSH框架(Struts+Spring+Hibernate)這個MVC框架,所以定位很明確,Struts主要負責表示層的顯示,Spring利用它的IOC和AOP來處理控制業務(負責對資料

Spring IOC容器啟動流程原始碼解析(一)——容器概念詳解原始碼初探

目錄 1. 前言 1.1 IOC容器到底是什麼 IOC和AOP是Spring框架的核心功能,而IOC又是AOP實現的基礎,因而可以說IOC是整個Spring框架的基石。那麼什麼是IOC?IOC即控制反轉,通俗的說就是讓Spring框架來幫助我們完成物件的依賴管理和生命週期控制等等工作。從面向物件的角度來說,

記憶體cache和暫存器之間的關係區別

cache是一個高速小容量的臨時儲存器,可以用高速的靜態儲存器晶片實現,或者整合到CPU晶片內部,儲存CPU最經常訪問的指令或者操作資料。而暫存器不同,暫存器是記憶體階層中的最頂端,也是系統獲得操作資料的最快速途徑。三者之間的順序就是 :記憶體-cahe-暫存器此外,暫存器

計算機中記憶體cache和暫存器之間的關係區別

1. 暫存器是中央處理器內的組成部份。暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、資料和位址。在中央處理器的控制部件中,包含的暫存器有指令暫存器(IR)和程式計數器(PC)。在中央處理器的算術及邏輯部件中,包含的暫存器有累加器(ACC)。 2. 記憶體包含的範圍

視訊畫素解析度清晰度關係區別

參考:https://jingyan.baidu.com/article/20b68a88bfa364796cec62bf.html在專案中需要選型攝像頭,對於其中一些概念瞭解的不太清楚,導致選型過程中雲裡霧裡,因此查詢資料,弄清楚每個指標的概念。主要涉及到的引數包括:畫素、

Spring BootSpringMVC 跨域問題解決

#####服務端跨域問題很常見,一下兩個方法經本人實測有效 ###方法一、單獨對某個介面增加跨域配置,只對當前介面有效 在Controller層增加註解 @CrossOrigin(origins = "*", maxAge = 3600) ###方法二、全域

Spring Boot】(13)Spring Boot自動配置SpringMVC

1、SpringMVC自動配置官方文件2、Spring MVC auto-configurationSpring Boot 提供了大多數SpringMVC應用常用的自動配置項。以下是Spring Boo

spring boot springMVC環境整合百度ueditor富文字編輯器,使用七牛雲端儲存圖片

基於spring boot的專案中要用到富文字編輯器,但百度UEditor的後臺程式碼給出的是jsp版本的實現,由於專案使用的thymeleaf,不願為了一個外掛單獨新增jsp支援;且專案中又使用七牛儲存圖片等檔案,便重寫UEditor的後臺程式碼。 原料

springmybatisspringmvc整合

del 工具包 aspect get slf4j ali nag attribute 整合 groupId artifactId org.springframework spring-context(自動依賴core,beans,aop,expression)

springspringmvc整合web的web.xml配置

listen filter 出現 url async ont 靜態資源 fig str <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/X

springspringmvc和mybatis整合(java config方式)

ada vat req style face sat roo art 實體   之前項目中使用ssm框架大多是基於xml的方式,spring3.0以後就提供java config的模式來構建項目,並且也推薦使用這種方式,自從接觸過springboot後,深深感受到這種純ja

javastruts2框架hibernate框架spring框架技術springMVC框架mybatis框架,javaweb專案開發的完整流程

使用javaEE技術是:spring+springMVC+mybatis框架整合技術 前端使用的技術包含:jquery、ajax、js、css、bootstrap等 教學系統 使用javaEE開發的線上教學系統,使用的是javaEE的主流框架技術,使用主流的前端技術,專案包含全部的專案原始碼以及資料檔案

Spring Boot】(19)Spring Boot嵌入式Servlet容器自動配置原理

    其中EmbeddedServletContainerAutoConfiguration是嵌入式Servlet容器的自動配置類,該類在spring-boot-autoconfigure-xxx.jar中的web模組可以找到。 @AutoConfig

Spring Boot】(18)Spring Boot配置嵌入式Servlet容器

Spring Boot預設使用Tomcat作為嵌入式的Servlet容器,只要引入了spring-boot-start-web依賴,則預設是用Tomcat作為Servlet容器: 1、定製和修改Servlet容器的相關配置 1)、修改和server有關的配置(ServerProper

Spring Boot】(15)Spring Boot錯誤處理機制

1、Spring Boot預設的錯誤處理機制 如果是瀏覽器,則返回一個預設的錯誤頁面: 如果是其他測試工具,如Postman,則返回一個json資料: 原理: ​ 可以參照ErrorMvcAutoConfiguration,錯誤處理的自動配置

Spring Boot】(24)Spring Boot中使用快取之Spring快取

1、快取依賴 只要新增如下依賴,即可使用快取功能。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter

Spring Boot】(23)Spring Boot整合Mybatis

首先新增mybatis依賴: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</

Spring Boot】(22)Spring Boot啟動配置原理

啟動配置原理 重要的事件回撥機制: ApplicationContextInitializer SpringApplicationRunListener ApplicationRunner CommandLineRunner前兩者需要配置在META-INF/spring.f

Spring Boot】(21)Spring Boot使用外接的Servlet容器

嵌入式Servlet容器: ​ 優點:簡單,便攜; ​ 缺點:預設不支援jsp,優化定製比較複雜; 使用外接Servlet容器的步驟: ​ 1)、必須建立一個war專案,需要建立好web專案的目錄結構,特別是webapp/WEB-INF/web.xml; ​ 2)、嵌入式的To