Spring、SpringMVC和SpringBoot的區(qū)別及說明
一、概念
1、Spring
Spring是一個開源容器框架,可以接管web層,業(yè)務(wù)層,dao層,持久層的組件,并且可以配置各種bean,和維護bean與bean之間的關(guān)系。
其核心就是控制反轉(zhuǎn)(IOC),和面向切面(AOP),簡單的說就是一個分層的輕量級開源框架。
2、SpringMVC
Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。
SpringMVC是一種web層mvc框架,用于替代servlet(處理|響應(yīng)請求,獲取表單參數(shù),表單校驗等。
SpringMVC是一個MVC的開源框架,SpringMVC=struts2+spring,springMVC就相當(dāng)于是Struts2加上Spring的整合。
3、SpringBoot
Springboot是一個微服務(wù)框架,延續(xù)了spring框架的核心思想IOC和AOP,簡化了應(yīng)用的開發(fā)和部署。
Spring Boot是為了簡化Spring應(yīng)用的創(chuàng)建、運行、調(diào)試、部署等而出現(xiàn)的,使用它可以做到專注于Spring應(yīng)用的開發(fā),而無需過多關(guān)注XML的配置。提供了一堆依賴打包,并已經(jīng)按照使用習(xí)慣解決了依賴問題—>習(xí)慣大于約定。
二、原理和結(jié)構(gòu)
1、Spring的原理和組成
Spring為簡化我們的開發(fā)工作,封裝了一系列的開箱即用的組件功能模塊,包括:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test等。
如下圖:

簡化的理解圖:

2、SpringMVC的原理和組成
從上圖中可以看出:SpringMVC是屬于SpringWeb里面的一個功能模塊(SpringWebMVC)。專門用來開發(fā)SpringWeb項目的一種MVC模式的技術(shù)框架實現(xiàn)。
其原理如下:

MVC:Model(模型)、VIew(視圖)、Controller(控制器);我們從開始接觸并學(xué)習(xí)javaWeb開發(fā)就知道MVC這一種架構(gòu),如早起的Sturts1、Sturts2等。
3、SpringBoot的原理和特性
Spring Boot基本上是Spring框架的擴展,它消除了設(shè)置Spring應(yīng)用程序所需的XML配置,為更快,更高效的開發(fā)生態(tài)系統(tǒng)鋪平了道路。
Spring Boot中的一些特點:
創(chuàng)建獨立的spring應(yīng)用。嵌入Tomcat, JettyUndertow 而且不需要部署他們。提供的“starters” poms來簡化Maven配置。盡可能自動配置spring應(yīng)用。提供生產(chǎn)指標(biāo),健壯檢查和外部化配置。絕對沒有代碼生成和XML配置要求。
組成和結(jié)構(gòu)如下圖:

從圖中可以看出SpringBoot是包含了Spring的核心(IOC)和(AOP);以及封裝了一些擴展,如Stater:

三、區(qū)別與總結(jié)
1、簡單理解為
Spring包含了SpringMVC,而SpringBoot又包含了Spring或者說是在Spring的基礎(chǔ)上做得一個擴展。

2、關(guān)系大概就是這樣
spring mvc < spring < springboot
3、Spring Boot 對比Spring的一些優(yōu)點包括
提供嵌入式容器支持使用命令java -jar獨立運行jar在外部容器中部署時,可以選擇排除依賴關(guān)系以避免潛在的jar沖突部署時靈活指定配置文件的選項用于集成測試的隨機端口生成
4、結(jié)論
Spring Boot只是Spring本身的擴展,使開發(fā),測試和部署更加方便。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java內(nèi)部類應(yīng)用之靜態(tài)內(nèi)部類應(yīng)用示例
這篇文章主要介紹了Java內(nèi)部類應(yīng)用之靜態(tài)內(nèi)部類應(yīng)用,結(jié)合實例形式分析了Java靜態(tài)內(nèi)部類的原理、功能、用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-09-09
SpringBoot集成itext導(dǎo)出PDF的過程
本文介紹了如何在Spring Boot中集成iText庫導(dǎo)出PDF文件,并解決中文亂碼問題,步驟包括添加依賴、準(zhǔn)備字體、打開系統(tǒng)字體目錄選擇字體、在控制器中新增方法、創(chuàng)建并測試UserPdfExportService類,以及添加請求頭,感興趣的朋友一起看看吧2024-11-11
springboot獲取properties屬性值的多種方式總結(jié)
這篇文章主要介紹了springboot獲取properties屬性值的多種方式總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
java使用EasyExcel實現(xiàn)Sheet的復(fù)制與填充
EasyExcel是一個非常有用的工具,它提供了強大的模板填充功能,可以輕松解決各種業(yè)務(wù)需求,本文主要為大家介紹了如何使用EasyExcel實現(xiàn)模板Sheet復(fù)制與填充,需要的可以參考下2023-10-10

