[轉]Spring SpringMVC SpringBoot SpringCloud概念、關系及區別



一、正面解讀:

?

??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的概念及關系,為了更好的學習,請大家務必要熟練掌握相關內容


---------------------
作者:奮斗碼農
來源:CSDN
原文:https://blog.csdn.net/xufei512/article/details/79710606
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285510.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285510.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285510.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言試題121之輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。 分析:利用 w…

5.4 Spring AOP

2019獨角獸企業重金招聘Python工程師標準>>> 5.4.1 從代理機制初探AOP 來看一個簡單的例子,當需要在執行某些方法時留下日志信息,可能會這樣寫: import java.util.logging.*; public class HelloSpeaker{ pirvate Logger loggerL…

WPF 實現心電圖曲線繪制

本文經原作者授權以原創方式二次分享,歡迎轉載、分享。原文作者:流浪g原文地址:https://www.cnblogs.com/cong2312/p/16411637.html一、前言項目中之前涉及到胎兒心率圖曲線的繪制,最近項目中還需要添加心電曲線和血樣曲線的繪制功…

C語言試題110之利用條件運算符的嵌套來完成此題:學習成績大于等于90分的同學用 A 表示,60到89 分之間的用 B 表示, 60 分以下的用 C 表示。

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:C語言試題110之利用條件運算符的嵌套來完成此題:學習成績大于等于90分的同學用 A 表…

【NOIp 2015】【DFS】斗地主

題面 自己網上去搜吧… 代碼 #include <cstdio> #include <cstring> #include <algorithm> #define INF 10000000 #define maxn 40 using namespace std;int t,n,temp,a,zhang[maxn],ansINF;void dfs(int,int,int,int); void shunzi(int,int,int,int,int);vo…

[轉]從入門到精通,Java學習路線導航

引言 最近也有很多人來向我"請教"&#xff0c;他們大都是一些剛入門的新手&#xff0c;還不了解這個行業&#xff0c;也不知道從何學起&#xff0c;開始的時候非常迷茫&#xff0c;實在是每天回復很多人也很麻煩&#xff0c;所以在這里統一作個回復吧。 Java學習路線…

如何讓 Dapper 支持 DateOnly 類型

前言在上次的文章中&#xff0c;我們讓 EF Core 6 支持了 DateOnly 類型。那么&#xff0c;Dapper 是否支持 DateOnly 類型呢&#xff1f;public class User {public int Id { get; set; }public string Name { get; set; }public DateOnly Birthday { get; set; } }using (var…

HP proliant服務器從usb啟動

1&#xff0c;開機出現自檢畫面開始按F9進入設置&#xff0c;進入BIOS 選擇standard boot order&#xff08;rpl&#xff09;&#xff0c;把usb driver放在第一位&#xff0c;保存好 2&#xff0c;按F1開始啟動。 &#xff08;注&#xff1a;我使用ubuntu14.04&#xff0c;到啟…

VB常用內部函數大全一覽表(建議收藏)

VB提供了大量的內部函數供用戶在編程時調用。內部函數按其功能分為數學運算函數、字符串函數、轉換函數、日期與時間函數、判斷函數和格式輸出函數等。 文章目錄 算術函數字符串函數日期和時間函數數據類型轉換函數算術函數 字符串函數 日期和時間函數

數據庫分類介紹

在當今的互聯網中&#xff0c;最常見的數據庫模型主要是兩種&#xff0c;即“關系型數據庫”和“非關系型數據庫”。 一、關系型數據庫 1、關系型數據庫的由來 雖然網狀數據庫和層次數據庫已經很好的解決了數據的集中和共享問題&#xff0c;但是在數據庫獨立性和抽象級別上扔有…

BZOJ 1717 [Usaco2006 Dec]Milk Patterns 產奶的模式(后綴數組)

【題目鏈接】http://www.lydsy.com/JudgeOnline/problem.php?id1717 【題目大意】 求一個最長的串&#xff0c;使得其在母串中出現的次數達到要求 【題解】 二分答案&#xff0c;利用后綴數組求出的height數組進行檢驗 【代碼】 #include <cstdio> #include <cstring…

記一次 .NET 某物管后臺服務 卡死分析

一&#xff1a;背景 1. 講故事這幾個月經常被朋友問&#xff0c;為什么不更新這個系列了&#xff0c;哈哈&#xff0c;確實停了好久&#xff0c;主要還是打基礎去了&#xff0c;分析 dump 的能力不在于會靈活使用 windbg&#xff0c;而是對底層知識有一個深厚的理解&#xff0c…

【C#程序設計】教學講義——第三章:C#語言基礎

完整C#教學課件系列: 【C#程序設計】教學講義——第一章:C#語言概述 【C#程序設計】教學講義——第二章:簡單C#程序設計 【C#程序設計】教學講義——第三章:C#語言基礎 文章目錄 3.1 C#程序結構3.2 變量和常量3.3 常用數據類型3.4 運算符和表達式3.1 C#程序結構 3.1.1 組成…

直接在script里面換樣式IE6,7,8不兼容

1 <!DOCTYPE HTML>2 <html>3 <head>4 <meta http-equiv"Content-Type" content"text/html; charsetutf-8">5 <title>無標題文檔</title>6 </head>7 8 <body>9 10 <input id"inp1" type&quo…

C語言試題111之 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一個數字。例如 2+22+222+2222+22222(此時 共有 5 個數相加),幾個數相加有鍵盤控制。

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目: s=a+aa+aaa+aaaa+aa…a 的值,其中 a 是一個數字。例如 2+22+222+2222+22222(此時 共…

Redis常用配置參數詳解及查看修改命令

目錄 Redis常用配置參數 Redis配置參數查看命令 語法 舉例 說明&#xff1a; Redis配置參數修改命令 語法 舉例 說明&#xff1a; Redis常用配置參數 序號配置項說明1daemonize noRedis 默認不是以守護進程的方式運行&#xff0c;可以通過該配置項修改&#xff0c;使…

反射封裝工具類-----零SQL插入

V_1.0 需求&#xff1a;開發一個工具方法&#xff0c;輔助初級程序員在不需要掌握sql命令和JDBC的情況下&#xff0c;實現對數據庫的插入操作。 V_4.0 實現0sql插入操作需要解決的問題. 1. 如何確認當前【陌生對象】關聯的【表名】 2. 如何確認當前表中需要添加數據的字段 3. …

MathType插入帶序號公式的兩種方法

方法一&#xff1a; 由于我之前使用表格15% 70% 15%來布局的&#xff0c;所以最開始相的就是如何錄入公示后插入公式序號&#xff0c;如下圖所示 先設置序號格式 錄好公式后點“Insert Number”就好了&#xff0c;這樣的話需要緊挨著公式&#xff0c;用空格把他空到最右側就好了…

數據結構算法:基于C#語言用圖實現最短路徑,太妙了!

文章目錄 構造類并實現最短路徑方法設計界面編寫程序測試新的Graph類構造類并實現最短路徑方法 在前面的C#編程中,我們已經完成了諸如遍歷、最小生成樹等許多方法,這個類已經可以完成諸如鄰接矩陣輸入、頂點矩陣輸入問題。這個類在Graph2.cs中。 現在,我們新建立一個WINDOW…

【系統設計】鄰近服務

在本文中&#xff0c;我們將設計一個鄰近服務&#xff0c;用來發現用戶附近的地方&#xff0c;比如餐館&#xff0c;酒店&#xff0c;商場等。設計要求 從一個小明去面試的故事開始。面試官&#xff1a;你好&#xff0c;我想考察一下你的設計能力&#xff0c;如果讓你設計一個…