44、Spring Boot 詳細講義(一)

Spring Boot 詳細講義

目錄

  1. Spring Boot 簡介
  2. Spring Boot 快速入門
  3. Spring Boot 核心功能
  4. Spring Boot 技術棧與集成
  5. Spring Boot 高級主題
  6. Spring Boot 項目實戰
  7. Spring Boot 最佳實踐
  8. 總結

一、Spring Boot 簡介

1. Spring Boot 概念和核心特點

1.1、什么是 Spring Boot?

Spring Boot 是一個基于 Spring Framework 的延申項目,旨在通過簡化配置和設置,幫助開發人員更快地構建、配置和部署基于 Spring 的應用程序。它通過自動配置和內嵌服務器的特性,大大減少了傳統 Spring 應用的配置復雜度。

1.2、 Spring Boot 的主要特點

  • 簡化配置
    Spring Boot 通過內嵌的配置文件(如 application.propertiesapplication.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 的對比

特性傳統 SpringSpring 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_HOMEPATH 環境變量,確保系統可以識別 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->選擇項目所在的位置

在這里插入圖片描述

項目結構如下:

  1. src/main/java/:存放Java源代碼文件
    • com.example.bootdemo:Java包名,根據實際情況可以自定義
      • BootdemoApplication.java:Spring Boot應用程序的入口類,包含main方法。
  2. src/main/resources/:存放資源文件(腳手架沒有生成,后續我們可以自己手動創建)
    • static/:存放靜態資源文件,如CSS、JavaScript等
    • templates/:存放模板文件,如Thymeleaf模板文件
    • application.propertiesapplication.yml:Spring Boot應用的配置文件,包括數據庫連接、端口等配置信息
  3. src/test/java/:存放測試代碼
  4. 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!”。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75346.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75346.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75346.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

配置mac mini M4 的一些軟件

最近更換了 mac mini M4 &#xff0c;想要重新下載配置軟件 &#xff0c;記錄一下。 Homebrew是什么&#xff1f; homebrew是一款Mac OS平臺下的軟件包管理工具&#xff0c;擁有安裝、卸載、更新、查看、搜索等功能。通過簡單的指令可以實現包管理&#xff0c;而不用關心各種…

網絡空間安全(54)CSRF

一、定義與原理 CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;全稱為跨站請求偽造&#xff0c;也被稱為One Click Attack或Session Riding&#xff0c;縮寫為CSRF或XSRF。它是一種網絡安全漏洞&#xff0c;攻擊者通過偽造用戶的請求&#xff0c;利用用戶…

分布式文件存儲系統FastDFS

文章目錄 1 分布式文件存儲1_分布式文件存儲的由來2_常見的分布式存儲框架 2 FastDFS介紹3 FastDFS安裝1_拉取鏡像文件2_構建Tracker服務3_構建Storage服務4_測試圖片上傳 4 客戶端操作1_Fastdfs-java-client2_文件上傳3_文件下載4_獲取文件信息5_問題 5 SpringBoot整合 1 分布…

安裝了VM Tools,仍無法復制拖動-解決方案

今天在安裝ubuntu時遇到了困擾許久的問題&#xff0c;安裝了VM Tools&#xff0c;仍無法拖動主機文件到虛擬機&#xff0c;主要有兩種原因并對應解決辦法。 1.相關虛擬機設置選項卡中-客戶機隔離-兩個功能沒有勾選 解決方案&#xff1a;勾選重啟虛擬機即可 2.&#xff08;這個…

Jmeter分布式測試啟動

代理客戶端配置 打開jmeter.properties文件&#xff0c;取消注釋并設置端口&#xff08;如server_port1099&#xff09;&#xff0c; 并添加server.rmi.ssl.disabletrue禁用SSL加密。 &#xff08;Linux系統&#xff09;修改jmeter-server文件中的RMI_HOST_DEF為代理機實際IP。…

火語言RPA--Oracle-導入數據表格

【組件功能】&#xff1a;導入特定的表格數據到包含同樣字段的數據表 將表格對象數據通過數據庫操作對象導入到指定數據庫。 配置預覽 配置說明 源表格 表格來源有“來自表格對象”和“來自表達式”2種&#xff0c;表達式支持DataTable類型變量。 對象 對應來自表格對象&…

Java的Selenium的特殊元素操作與定位之驗證碼

1.使用OCR技術識別驗證 步驟&#xff1a; 截取整個網頁的截圖。 定位驗證碼圖片元素。 根據驗證碼圖片的位置和大小&#xff0c;從截圖中裁剪出驗證碼圖片。 使用OCR工具&#xff08;如Tesseract&#xff09;識別驗證碼圖片中的文本。 2.手動處理驗證碼 步驟&#xff1a;…

OpenStack Yoga版安裝筆記(十七)安全組筆記

一、安全組與iptables的關系 OpenStack的安全組&#xff08;Security Group&#xff09;默認是通過Linux的iptables實現的。以下是其主要實現原理和機制&#xff1a; 安全組與iptables的關系 OpenStack的安全組規則通過iptables的規則鏈實現。每條安全組規則會被轉換為相應的i…

starrocks split函數和trino split函數差異性

在trino419和starrocks3.2.8中分別執行下面這兩條sql,出來的結果是不一樣的 select split(,,,)[1] as t1 select coalesce(split(,,&#

Spring Data JPA中的List底層:深入解析ArrayList的奧秘!!!

&#x1f31f; Spring Data JPA中的List底層&#xff1a;深入解析ArrayList的奧秘 &#x1f4a1; 你是否好奇過&#xff0c;為什么Spring Data JPA的查詢方法返回的List<T>總是默認為ArrayList&#xff1f;本文將通過技術原理解析、驗證實驗和性能優化指南&#xff0c;為…

騰訊云智測試開發面經

1、投遞時間線 2.20投遞簡歷,3.11第一輪面試,3.30第二輪面試,4.4第三輪面試,4.10第四輪面試,4.11offer意向書 2、第一輪面試 第一輪面試技術面,面試官是導師,面試時長40多分鐘 1)自我介紹 2)數組和列表的區別 3)了解哪些數據庫 4)進程和線程的區別 5)了解哪…

【深度學習】【目標檢測】【Ultralytics-YOLO系列】YOLOV3源碼整體結構解析

【深度學習】【目標檢測】【Ultralytics-YOLO系列】YOLOV3源碼整體結構解析 文章目錄 【深度學習】【目標檢測】【Ultralytics-YOLO系列】YOLOV3源碼整體結構解析前言代碼結構整體data文件結構模型訓練超參數配置文件解析數據集配置文件解析 models文件結構utils文件結構runs文…

Python常用排序算法

1. 冒泡排序 冒泡排序是一種簡單的排序算法&#xff0c;它重復地遍歷要排序的列表&#xff0c;比較相鄰的元素&#xff0c;如果他們的順序錯誤就交換他們。 def bubble_sort(arr):# 遍歷所有數組元素for i in range(len(arr)):# 最后i個元素是已經排序好的for j in range(0, …

解鎖塔能科技,開啟工廠綠色轉型與可持續發展雙引擎

在全球積極推進可持續發展的大背景下&#xff0c;能源的高效利用與節能減排&#xff0c;已成為各行各業邁向高質量發展進程中無法回避的核心任務。工廠作為能源消耗大戶與污染排放重點源頭&#xff0c;其綠色轉型迫在眉睫&#xff0c;這不僅關乎企業自身的長遠發展&#xff0c;…

Spring Boot 線程池配置詳解

Spring Boot 線程池配置詳解 一、核心配置參數及作用 基礎參數核心線程數 (corePoolSize)? 作用?:線程池中始終保持存活的線程數量,即使空閑也不回收?。 建議?:根據任務類型設定(如 I/O 密集型任務可設為 CPU 核心數 2)?。 最大線程數 (maxPoolSize)? 作用?:…

入侵檢測系統(IDS)和入侵防御系統(IPS)有啥區別?

入侵檢測系統&#xff08;IDS&#xff09;和入侵防御系統&#xff08;IPS&#xff09;是網絡安全中的兩種關鍵技術&#xff0c;它們的核心區別在于 檢測后的響應方式 和 部署位置。以下是詳細對比&#xff1a; 1. 核心功能 - IDS&#xff08;入侵檢測系統&#xff09; - 僅監…

【MySQL 數據庫】數據表的操作

&#x1f525;博客主頁&#x1f525;&#xff1a;【 坊鈺_CSDN博客 】 歡迎各位點贊&#x1f44d;評論?收藏? 目錄 1. 表的查看 1.1 語法 2. 表的創建 2.1 語法 2.2 練習 3. 查看表結構 3.1 語法 3.2 示例 4. 表的修改 4.1 語法 4.2 示例操作 4.2.1 向表中添加字段…

sqli-labs靶場 less5

文章目錄 sqli-labs靶場less 5 報錯注入 sqli-labs靶場 每道題都從以下模板講解&#xff0c;并且每個步驟都有圖片&#xff0c;清晰明了&#xff0c;便于復盤。 sql注入的基本步驟 注入點注入類型 字符型&#xff1a;判斷閉合方式 &#xff08;‘、"、’、“”&#xf…

C# 狀態模式深度解析:構建靈活的狀態驅動系統

一、狀態模式概述 狀態模式&#xff08;State Pattern&#xff09;是一種行為型設計模式&#xff0c;它允許對象在其內部狀態改變時改變其行為&#xff0c;使對象看起來像是修改了它的類。這種模式將特定狀態相關的行為局部化&#xff0c;并且將不同狀態的行為分割開來。 狀態…

vue實現二維碼生成器和解碼器

vue實現二維碼生成器和解碼器 1.生成基本二維碼&#xff1a;根據輸入的value生成二維碼。 2.可定制尺寸&#xff1a;通過size調整大小。 3.顏色和背景色&#xff1a;設置二維碼顏色和背景。 4.靜區&#xff08;quiet zone&#xff09;支持&#xff1a;通過quietZone調整周圍的…