Spring、SpringMVC和SpringBoot的區(qū)別及說(shuō)明
一、概念
1、Spring
Spring是一個(gè)開(kāi)源容器框架,可以接管web層,業(yè)務(wù)層,dao層,持久層的組件,并且可以配置各種bean,和維護(hù)bean與bean之間的關(guān)系。
其核心就是控制反轉(zhuǎn)(IOC),和面向切面(AOP),簡(jiǎn)單的說(shuō)就是一個(gè)分層的輕量級(jí)開(kāi)源框架。
2、SpringMVC
Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。
SpringMVC是一種web層mvc框架,用于替代servlet(處理|響應(yīng)請(qǐng)求,獲取表單參數(shù),表單校驗(yàn)等。
SpringMVC是一個(gè)MVC的開(kāi)源框架,SpringMVC=struts2+spring,springMVC就相當(dāng)于是Struts2加上Spring的整合。
3、SpringBoot
Springboot是一個(gè)微服務(wù)框架,延續(xù)了spring框架的核心思想IOC和AOP,簡(jiǎn)化了應(yīng)用的開(kāi)發(fā)和部署。
Spring Boot是為了簡(jiǎn)化Spring應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等而出現(xiàn)的,使用它可以做到專注于Spring應(yīng)用的開(kāi)發(fā),而無(wú)需過(guò)多關(guān)注XML的配置。提供了一堆依賴打包,并已經(jīng)按照使用習(xí)慣解決了依賴問(wèn)題—>習(xí)慣大于約定。
二、原理和結(jié)構(gòu)
1、Spring的原理和組成
Spring為簡(jiǎn)化我們的開(kāi)發(fā)工作,封裝了一系列的開(kāi)箱即用的組件功能模塊,包括:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test等。
如下圖:
簡(jiǎn)化的理解圖:
2、SpringMVC的原理和組成
從上圖中可以看出:SpringMVC是屬于SpringWeb里面的一個(gè)功能模塊(SpringWebMVC)。專門用來(lái)開(kāi)發(fā)SpringWeb項(xiàng)目的一種MVC模式的技術(shù)框架實(shí)現(xiàn)。
其原理如下:
MVC:Model(模型)、VIew(視圖)、Controller(控制器);我們從開(kāi)始接觸并學(xué)習(xí)javaWeb開(kāi)發(fā)就知道MVC這一種架構(gòu),如早起的Sturts1、Sturts2等。
3、SpringBoot的原理和特性
Spring Boot基本上是Spring框架的擴(kuò)展,它消除了設(shè)置Spring應(yīng)用程序所需的XML配置,為更快,更高效的開(kāi)發(fā)生態(tài)系統(tǒng)鋪平了道路。
Spring Boot中的一些特點(diǎn):
創(chuàng)建獨(dú)立的spring應(yīng)用。嵌入Tomcat, JettyUndertow 而且不需要部署他們。提供的“starters” poms來(lái)簡(jiǎn)化Maven配置。盡可能自動(dòng)配置spring應(yīng)用。提供生產(chǎn)指標(biāo),健壯檢查和外部化配置。絕對(duì)沒(méi)有代碼生成和XML配置要求。
組成和結(jié)構(gòu)如下圖:
從圖中可以看出SpringBoot是包含了Spring的核心(IOC)和(AOP);以及封裝了一些擴(kuò)展,如Stater:
三、區(qū)別與總結(jié)
1、簡(jiǎn)單理解為
Spring包含了SpringMVC,而SpringBoot又包含了Spring或者說(shuō)是在Spring的基礎(chǔ)上做得一個(gè)擴(kuò)展。
2、關(guān)系大概就是這樣
spring mvc < spring < springboot
3、Spring Boot 對(duì)比Spring的一些優(yōu)點(diǎn)包括
提供嵌入式容器支持使用命令java -jar獨(dú)立運(yùn)行jar在外部容器中部署時(shí),可以選擇排除依賴關(guān)系以避免潛在的jar沖突部署時(shí)靈活指定配置文件的選項(xiàng)用于集成測(cè)試的隨機(jī)端口生成
4、結(jié)論
Spring Boot只是Spring本身的擴(kuò)展,使開(kāi)發(fā),測(cè)試和部署更加方便。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java實(shí)現(xiàn)檢測(cè)是否字符串中包含中文
本文給大家分享了2個(gè)使用java檢測(cè)字符串中是否包含中文的代碼,都非常的實(shí)用,最后附上了各種字符的unicode編碼的范圍,方便我們以后使用正則進(jìn)行匹配檢測(cè)。2015-10-10Java基于IDEA實(shí)現(xiàn)qq郵件發(fā)送小程序
這篇文章主要介紹了Java基于IDEA實(shí)現(xiàn)qq郵件發(fā)送小程序功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09sqlite數(shù)據(jù)庫(kù)的介紹與java操作sqlite的實(shí)例講解
今天小編就為大家分享一篇關(guān)于sqlite數(shù)據(jù)庫(kù)的介紹與java操作sqlite的實(shí)例講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02SpringBoot啟動(dòng)指定profile的多種方式
這篇文章主要介紹了SpringBoot啟動(dòng)指定profile的多種方式,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09SpringBoot使用prometheus監(jiān)控的示例代碼
這篇文章主要介紹了SpringBoot使用prometheus監(jiān)控的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03java隨機(jī)生成一個(gè)名字和對(duì)應(yīng)拼音的方法
這篇文章主要介紹了java隨機(jī)生成一個(gè)名字和對(duì)應(yīng)拼音的方法,涉及java針對(duì)數(shù)組及隨機(jī)數(shù)操作的相關(guān)技巧,需要的朋友可以參考下2015-07-07