1基礎
1.Spring
Spring是一個開源容器框架,可以接管web層,業務層,dao層,持久層的組件,並且可以配置各種bean,和維護bean與bean之間的關係。其核心就是控制反轉(IOC),和麪向切面(AOP),簡單的說就是一個分層的輕量級開源框架。
2.SpringMVC
Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。SpringMVC是一種web層mvc框架,用於替代servlet(處理|響應請求,獲取表單參數,表單校驗等。SpringMVC是一個MVC的開源框架,SpringMVC=struts2+spring,springMVC就相當於是Struts2加上Spring的整合。
3.SpringBoot
Springboot是一個微服務框架,延續了spring框架的核心思想IOC和AOP,簡化了應用的開發和部署。Spring Boot是爲了簡化Spring應用的創建、運行、調試、部署等而出現的,使用它可以做到專注於Spring應用的開發,而無需過多關注XML的配置。提供了一堆依賴打包,並已經按照使用習慣解決了依賴問題--->習慣大於約定。
2原理和結構
1.Spring的原理和組成
Spring爲簡化我們的開發工作,封裝了一系列的開箱即用的組件功能模塊,包括:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test等.
2.SpringMVC的原理和組成
SpringMVC是屬於SpringWeb裏面的一個功能模塊(SpringWebMVC)。專門用來開發SpringWeb項目的一種MVC模式的技術框架實現。MVC:Model(模型)、VIew(視圖)、Controller(控制器)
3.SpringBoot的原理和特性
Spring Boot
基本上是Spring
框架的擴展,它消除了設置Spring
應用程序所需的XML配置
,爲更快,更高效的開發生態系統鋪平了道路。
Spring Boot
中的一些特點:
- 創建獨立的
spring
應用。 - 嵌入
Tomcat
,Jetty
Undertow
而且不需要部署他們。 - 提供的“starters” poms來簡化
Maven
配置 - 儘可能自動配置
spring
應用。 - 提供生產指標,健壯檢查和外部化配置
- 絕對沒有代碼生成和
XML
配置要求。 - SpringBoot是包含了Spring的核心(IOC)和(AOP)。
3區別與總結
Spring包含了SpringMVC,而SpringBoot又包含了Spring或者說是在Spring的基礎上做得一個擴展(spring mvc < spring < springboot)。
Spring Boot
對比Spring
的一些優點包括:
- 提供嵌入式容器支持
- 使用命令java -jar獨立運行jar
- 在外部容器中部署時,可以選擇排除依賴關係以避免潛在的jar衝突
- 部署時靈活指定配置文件的選項
- 用於集成測試的隨機端口生成
- Spring Boot只是Spring本身的擴展,使開發,測試和部署更加方便。
4maven中SpringBoot的引用
首先,都會使用這個
<parent>
<artifactId>spring-boot-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.2.5.RELEASE</version>
</parent>
接下來根據使用添加包,例如
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- spring jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- spring 單元測試--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!-- muysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> <!-- 阿里巴巴的 druid 數據庫連接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> </dependencies>