Spring Boot 詳細講義
目錄
- Spring Boot 簡介
- Spring Boot 快速入門
- Spring Boot 核心功能
- Spring Boot 技術棧與集成
- Spring Boot 高級主題
- Spring Boot 項目實戰
- Spring Boot 最佳實踐
- 總結
一、Spring Boot 簡介
1. Spring Boot 概念和核心特點
1.1、什么是 Spring Boot?
Spring Boot 是一個基于 Spring Framework 的延申項目,旨在通過簡化配置和設置,幫助開發人員更快地構建、配置和部署基于 Spring 的應用程序。它通過自動配置和內嵌服務器的特性,大大減少了傳統 Spring 應用的配置復雜度。
1.2、 Spring Boot 的主要特點
- 簡化配置
Spring Boot 通過內嵌的配置文件(如application.properties
或application.yml
)和自動配置特性,減少了傳統 Spring 項目中大量的 XML 或注解配置。 - 自動配置
Spring Boot 根據項目依賴自動配置 Bean 和環境。例如,添加了spring-boot-starter-web
依賴后,Spring Boot 會自動配置嵌入式 Tomcat 服務器和 Web 應用的基礎設施。 - 內嵌服務器
Spring Boot 內置了像 Tomcat、Jetty 和 Undertow 等常見的 Web 服務器,無需額外安裝服務器即可運行 Web 應用。 - 無需代碼生成
Spring Boot 不需要任何代碼生成過程,開發者只需編寫業務邏輯代碼即可。 - 生產環境友好
Spring Boot 提供了強大的生產環境支持,包括監控、健康檢查、外部化配置等功能,方便應用在生產環境中部署和管理。
2. Spring Boot 的優勢
2.1、 與傳統 Spring 的對比
特性 | 傳統 Spring | Spring Boot |
---|---|---|
配置復雜度 | 高,需要大量 XML 或注解配置 | 低,簡化配置,自動配置為主 |
啟動速度 | 較慢,需要手動配置服務器 | 快速,內嵌服務器 |
依賴管理 | 需要手動管理依賴版本 | 通過 Starter 依賴自動管理 |
生產環境支持 | 需要額外配置監控和日志 | 內置監控和日志功能 |
開發效率 | 較低,需要更多的配置和搭建工作 | 更高,快速開發和部署 |
2.2、 適用場景
- 快速開發
適合快速搭建和驗證想法的開發場景。 - 微服務
Spring Boot 是構建微服務的首選工具,結合 Spring Cloud 可以輕松實現微服務架構。 - API 展現
適合快速構建 RESTful API 服務。 - 嵌入式應用
適合需要內嵌 Web 服務器的桌面或移動應用。
3. Spring Boot 的版本和生態
3.1、Spring Boot 與 Spring Framework 的關系
Spring Boot 是 Spring Framework 的一個擴展,兩者共享相同的核心功能,但 Spring Boot 提供了更簡化的配置和更高效的開發體驗。
- Spring Framework:專注于核心框架功能,如 IOC、AOP 等。
- Spring Boot:在 Spring Framework 基礎上增加了自動配置、內嵌服務器等特性,簡化了應用的開發和部署。
3.2 常見的組件和工具集
- Spring Data
提供對數據庫的簡化操作,支持 JPA、MongoDB、Redis 等。 - Spring Security
提供安全認證和授權功能,支持 OAuth2、JWT 等。 - Spring Cloud
提供微服務相關的組件,如服務注冊、斷路器、API 網關等。 - Spring Actuator
提供生產環境監控和管理功能。 - Spring Initializr
Spring Boot 項目模板生成工具,支持 Maven 和 Gradle 項目。
3.3、 Spring Boot 的版本說明
二、Spring Boot 快速入門
1、 Spring Boot 環境搭建
1.1 Java 8 或更高版本的安裝與配置
- 安裝 Java
Spring Boot 2.x 版本要求 Java 8 或更高版本。訪問 Oracle Java 官方網站,下載并安裝適合的版本。 - 配置環境變量
安裝完成后,配置JAVA_HOME
和PATH
環境變量,確保系統可以識別 Java。- 驗證安裝:在命令行輸入
java -version
,查看 Java 版本。
- 驗證安裝:在命令行輸入
1.2 Maven 的安裝與配置
1.什么是maven
Maven是基于項目對象模型(POM project object model),可以通過一小段描述信息(配置)來管理項目的構建,報告和文檔的軟件項目管理工具.
通俗點講,就是通過pom.xml文件的配置獲取jar包,而不用手動去添加jar包,如果需要使用pom.xml來獲取jar包,那么首先該項目就必須為maven項目,maven項目可以這樣去想,就是在java項目和web項目的上面包裹了一層maven,本質上java項目還是java項目,web項目還是web項目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通過pom.xml添加jar包)。
2.Maven安裝
【檢查】確認已經安裝jdk,已經環境變量中配置JAVA_HOME,已經修改Path
【下載】從http://maven.apache.org/download.cgi下載所需要的版本。
【解壓】解壓maven到某一指定目錄,例如:D:\apache-maven-3.5.2,目錄下會有bin、conf、lib等文件夾。
3.配置環境變量
1.右鍵我的電腦(或者計算機)-屬性-高級系統設置-高級-環境變量-系統變量-新建MAVEN_HOME,添加maven的安裝目錄
2.把%MAVEN_HOME%\bin;追加到Path變量的值后面
3.檢驗是否成功
cmd中輸入 mvn -v,會顯示版本信息
4 配置倉庫
maven安裝好以后,我們需要配置倉庫用來加載項目需要的依賴包
maven存儲jar包的倉庫有3種 :本地倉庫,遠程倉庫(私服),中央倉庫, 檢索順序:先檢索本地倉庫--再檢索遠程倉庫--最后檢索中央倉庫 .
我們需要配置本地倉庫和私服。
1.配置本地倉庫
maven安裝目錄/conf文件夾下找到settings.xml,修改本地倉庫路徑(之前有倉庫的設置為之前倉庫的路徑,沒有的會自動創建文件夾,以后從私服下載下來的jar包會保存到本地倉庫中)
2.配置遠程倉庫
一般都使用國內鏡像或者公司自己搭建私服, 目的是加快下載速度
在settings.xml文件中添加遠程倉庫的路徑
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
1.3 IDE 安裝與配置
-
Eclipse
下載并安裝 Eclipse。安裝完成后,需要額外安裝 Spring Tools 插件以支持 Spring Boot 開發。 -
IntelliJ IDEA
推薦使用 IntelliJ IDEA,它對 Spring Boot 有更好的支持。- 下載社區版(免費)或ultimate版。
- 安裝完成后,確保 Maven 或 Gradle 插件已啟用。
1.4 Idea環境配置
1.idea中配置jdk
點Add New SDK,然后選擇jdk的安裝目錄即可添加JDK。
2.idea中配置maven
idea中打開“File”–>“settings”,搜索“maven”,如圖,配置maven目錄,settings文件目錄,本地倉庫目錄
3.idea中設置編碼和代碼風格
file->settings中搜索File Encoding,可以設置編碼
還可以設置代碼風格
如圖所示,可以選擇不同的代碼風格,默認是Dark(黑底白字),也可以選擇其它風格,白底黑字等
2、 第一個 Spring Boot 應用
2.1 使用云腳手架創建第一個項目
通過云原生腳手架創建
云原生腳手架地址:https://start.aliyun.com
1、打開云原生腳手架,在線創建springboot項目。
將下載的項目解壓后在idea中打開(注意解壓后多兩層bootdemo目錄,打開里層的)
file->open->選擇項目所在的位置
項目結構如下:
- src/main/java/:存放Java源代碼文件
- com.example.bootdemo:Java包名,根據實際情況可以自定義
- BootdemoApplication.java:Spring Boot應用程序的入口類,包含main方法。
- com.example.bootdemo:Java包名,根據實際情況可以自定義
- src/main/resources/:存放資源文件(腳手架沒有生成,后續我們可以自己手動創建)
- static/:存放靜態資源文件,如CSS、JavaScript等
- templates/:存放模板文件,如Thymeleaf模板文件
- application.properties或application.yml:Spring Boot應用的配置文件,包括數據庫連接、端口等配置信息
- src/test/java/:存放測試代碼
- pom.xml:Maven項目的配置文件,管理項目的依賴和構建等信息
默認pom中添加了springboot,test包,我們可以在pom文件中添加項目需要的其它依賴包,比如mybatis,mysql驅動,springweb等(需要的時候再加)
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>
2.2創建一個簡單的 HelloWorld
控制器
在com.example.bootdemo包下創建HelloWorldController.java文件
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloWorldController {@GetMapping("/hello")public String hello() {return "Hello, Spring Boot!";}
}
2.3 運行和測試
通過 Maven命令運行
項目打包
項目運行:
訪問測試
在瀏覽器中輸入 http://localhost:8080/hello
,查看是否返回 “Hello, Spring Boot!”。