一.概念
1.Spring
Spring是一個(gè)開源容器框架腋逆,可以接管web層掠兄,業(yè)務(wù)層,dao層,持久層的組件栅贴,并且可以配置各種bean,和維護(hù)bean與bean之間的關(guān)系。其核心就是控制反轉(zhuǎn)(IOC),和面向切面(AOP),簡單的說就是一個(gè)分層的輕量級(jí)開源框架。
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的開源框架曲梗,SpringMVC=struts2+spring赞警,springMVC就相當(dāng)于是Struts2加上Spring的整合。
3.SpringBoot
Springboot是一個(gè)微服務(wù)框架稀并,延續(xù)了spring框架的核心思想IOC和AOP仅颇,簡化了應(yīng)用的開發(fā)和部署单默。Spring Boot是為了簡化Spring應(yīng)用的創(chuàng)建碘举、運(yùn)行、調(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等弊知。
如下圖:image.png
簡化的理解圖:
image.png
2.SpringMVC的原理和組成
從上圖中可以看出:SpringMVC是屬于SpringWeb里面的一個(gè)功能模塊(SpringWebMVC)。專門用來開發(fā)SpringWeb項(xiàng)目的一種MVC模式的技術(shù)框架實(shí)現(xiàn)粱快。
其原理如下:
image.png
MVC:Model(模型)秩彤、VIew(視圖)叔扼、Controller(控制器);我們從開始接觸并學(xué)習(xí)javaWeb開發(fā)就知道MVC這一種架構(gòu)漫雷,如早起的Sturts1瓜富、Sturts2等
3.SpringBoot的原理和特性
Spring Boot基本上是Spring框架的擴(kuò)展,它消除了設(shè)置Spring應(yīng)用程序所需的XML配置降盹,為更快食呻,更高效的開發(fā)生態(tài)系統(tǒng)鋪平了道路。
Spring Boot中的一些特點(diǎn):
1.創(chuàng)建獨(dú)立的spring應(yīng)用澎现。
2.嵌入Tomcat, JettyUndertow 而且不需要部署他們仅胞。
3.提供的“starters” poms來簡化Maven配置。
4.盡可能自動(dòng)配置spring應(yīng)用剑辫。
5.提供生產(chǎn)指標(biāo),健壯檢查和外部化配置干旧。
6.絕對(duì)沒有代碼生成和XML配置要求。
組成和結(jié)構(gòu)如下圖:
image.png
從圖中可以看出SpringBoot是包含了Spring的核心(IOC)和(AOP)妹蔽;以及封裝了一些擴(kuò)展椎眯,如Stater:
image.png
三.區(qū)別與總結(jié)
1.簡單理解為:Spring包含了SpringMVC,而SpringBoot又包含了Spring或者說是在Spring的基礎(chǔ)上做得一個(gè)擴(kuò)展胳岂。
image.png
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ò)展,使開發(fā)乳丰,測(cè)試和部署更加方便掌测。