Spring Boot 入門學習

一、?Web應用開發概述

什么是Web應用

1. Web應用 (Web Application)是一種運行在Web服務器上的軟件程序,由用戶通過Web瀏覽器進行訪問和交互。

2.Web應用與傳統的桌面應用不同,它不需要在個人計算機上安裝特定的軟件,只需要一個的網頁瀏覽器。

3.通過瀏覽器,用戶可以在不同的設備和平臺上使用,只要有網絡連接即可。

前端開發

1.前端使用戶直接互動的應用程序部分,即用戶界面。在Web開發中,前端特指在瀏覽器中運行的部分,涵蓋頁面布局、設計和交互性功能。

2.常用的Web前端技術包括:
HTML:構建網頁內容的結構。

CSS:設定網頁的樣式和外觀。

JavaScript:賦予網頁交互性。

3.前端開發者的職責包括創建用戶友好的界面,確保應用在不同設備和瀏覽器上 的兼容性,并優化整體用戶體驗。

后端開發

1. 后端是在服務器上運行的應用程序部分,負責處理業務邏輯和數據操作,后端從數據庫檢索數據,并執行計算和邏輯處理,然后將結果傳送至前端。

2. 常用的Web后端技術包括:

——編程語言:如Java、Python、Node.js、 PHP等。

——數據庫:如MySQL、MongoDB等,用戶數據存儲。

——服務器:如Apache、Nginx、Tomcat等。

——框架:如Spring Boot(Java), Django (Python)等。

3. 后端開發者負責實現業務邏輯,保證數據安全性和完整性,并構建供前端使用的API? (應用程序接口)

全棧開發

1. 如果開發者即懂前端開發,也懂后端開發,可以稱為全棧(Full-stack)開發。

2. 全棧開發者有能力構建整個應用程序,從用戶界面到服務器和數據庫。

3.全棧開發者可以參與項目的整個生命周期,從需求分析、設計、開發到部署和維護。

前后端分離

1. 前后端分離是現代Web開發的重要趨勢。它在前端和后端之間劃分了清晰界限。

2. 前端通過API與后端交互。前端發送API請求,后端處理這些請求并以JSON或XML格式返回數據,使得一個后端能夠支持多個前端應用(如Web、移動、桌面應用)。

3. 前后端分離還允許不同的開發團隊使用各自的技術棧進行開發,并實現獨立部署。這種獨立性使得前后端可以根據需要進行單獨的擴展。

B/S架構與C/S架構

——C/S(Client/Server)構架也稱作客戶端/服務器架構。其中,服務器運行服務端程序,而客戶端設備上安裝客戶端軟件。服務端負責后臺業務邏輯和數據處理,而客戶端則處理前端界面和用戶交互。

——C/S架構的主要優點是能充分利用客戶端PC的處理能力,提高影響速度。然而,這也意味著需要考慮不同操作系統和硬件平臺的兼容性,并且在應用更新時需要逐個更新客戶端軟件。

——B/S架構特別適用于Web應用程序,如社交媒體、在線購物和博客平臺。這種構建允許用戶通過Web瀏覽器訪問服務器上的功能,無須在本地設備上安裝任何應用程序。

B/S架構與C/S架構的區別

特點CS架構BS架構
部署方式需要在每個客戶設備上安裝應用程序只需使用Web瀏覽器訪問
更新與維護需要為每個客戶端更新軟件更新主要在服務器端進行,用戶總是訪問的是最新版本
開發與兼容性需要考慮各種操作系統和硬件平臺只需要考慮不同瀏覽器的兼容性
性能通常提供更好的性能和響應速度可能受到網絡、服務器負載等的影響
可訪問性需要在特定的設備上安裝可以從任何地方通過Internet訪問
界面豐富度可能提供更復雜和響應式的用戶界面依賴于Web技術的限制,但現代框架已有所改進

B/S架構工作原理

在B/S架構中,前端和后端通過HTTP(超文本傳輸協議)通信,前端向后端發送請求以獲取數據,后端從數據庫檢索數據,執行計算和邏輯處理,然后將結果傳送至前端。

HTTP協議

1.?HTTP是一種無狀態的請求/響應協議,每個請求都是獨立的,服務器不會“記住”之前的請求。

2.?HTTP請求方法包括GET、POST、PUT、DELETE等,支持不同的操作。?HTTP響應包括狀態代碼,如200?OK、404?Not?Found等,用于表示請求的結果。

3.?盡管HTTP本身是無狀態的,但Web應用往往需要維護管理狀態(例如,跟蹤用戶是否登錄,他們的購物車內容等)。為了解決這個問題,Web開發者使用了一些技巧和工具,如cookies、URL參數、隱藏的表單字段和服務器端的session存儲。

Session與Cookie

1.?用戶在輸入用戶名密碼提交給服務端,服務端驗證通過后會創建一個session用于記錄用戶的相關信息。

2.創建session后,會把關聯的session_id通過setCookie?添加到http響應頭部中。客戶端接收到從服務器端發來的Session?ID后,會將其作為?Cookie?保存在本地。

3.?瀏覽器會自動發送被種下sessionid的cookie,后端接受后去存session的地方根據sessionid查找是否有此session,認證用戶身份。

二、?Spring Boot 概述

Spring Boot介紹

1.?Spring Boot是由Pivotal團隊提供的基于Spring 的全新框架,旨在簡化Spring 應用的初始搭建和開發過程。

2. Spring Boot是所有基于Spring 開發項目的起點。?

3.?Spring Boot就是盡可能地簡化應用開發的門檻,讓應用開發、測試、部署變得更加簡單。

Spring Boot特點

1. 遵循“約定優于配置”的原則,只需要很少的配置或使用默認的配置。

2. 能夠使用內嵌的Tomcat 、Jetty服務器,不需要部署war文件。

3. 提供定制化的啟動器Starters,簡化Maven配置,開箱即用。

4.純Java配置,沒有代碼生成,也不需要XML配置。

5. 提供了生產級的服務監控方案,如安全監控、應用監控、健康檢測等。

Spring Boot與SSM

1. SSM是由三個獨立的框架組合而成的,分別是Spring 、Spring MVC和MyBatis的縮寫。這三個框架經常結合使用,構建Java Web應用程序:

Spring :用于依賴注入和事務管理。

Spring MVC:用于Web層,處理HTTP請求。

MyBatis:是一個持久層框架,用于與數據庫交互。

2.??Spring Boot可以很好地與Spring MVC和MyBatis結合使用,但其目的是簡化整個應用程序的配置和部署。

三、搭建開發環境

Spring Boot 3環境要求

1.?Spring Boot 2.7是最后一個支持 JDK 8 版本,根據官方公告,Spring Boot 2.7.x會在2023年11月停止維護

2.未來能夠獲得官方免費維護的版本只有Spring Boot 3.0及以上版本,由于Spring Boot 3.x版本要求java 17作為最低版本,因此需要安裝JDK 17 或者以上版本運行。

下載Java17

訪問Oracle官方網站:

Java Downloads | Oracle

配置環境變量

新建JAVA_HOME環境,變量值為Java目錄,如:D:\dev\jdk-17.0.8

配置環境變量

在"Path"變量中添加%JAVA_HOME%\bin

驗證Java環境

在令提示符窗口,輸入java-version并按Enter,可以看到安裝的Java17版本的信息。

Apache Maven

Apache Maven是一個流行的Java項目管理和構建工具,可以對Java項目進行自動化的構建和依賴管理。

Maven的作用

1. 項目構建:提供標準的,跨平臺的自動化構建項目的方式

2. 依賴管理:方便快捷的管理項目依賴的資源(jar包),避免資源間的版本沖突等問題。

3.統一開發結構:提供標準的,統一的項目開發結構,如下圖所示:

下載Maven

1.?訪問 Apache Maven的官方下載頁面
https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/

2.?下載“Binary zip archive"(如apache-maven-3.6.1-bin.zip )。

3將壓縮包直接到任意目錄(注意不要使用中文路徑)。

Maven倉庫

運行Maven 的時候,Maven所需要的任何構建都是直接從本地倉庫獲取的。如果本地倉庫沒有,它會首先嘗試從遠程倉庫下載構建至本地倉庫。

配置國內Maven鏡像

maven默認連接的遠程倉庫位置并不在國內,因此有時候下載速度非常慢,可以配置一個國內站點鏡像,可用于加速下載資源。

<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共倉庫</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

IDEA開發工具

1.?IntelliJ IDEA,通常簡稱為IDEA,是由JetBrains公司開發的一個流行的集成開發環境(IDE),主要用于Java 開發。

2.IntelliJ IDEA 有兩個主要版本,Community Edition免費開源版本與Ultimate Edition商業版本。打開瀏覽器,訪問IntelliJIDEA的官網: https://www.jetbrains.com/idea/

不知道怎么使用IDEA?一篇文章帶你快速上手

不知道怎么使用IDEA?一篇文章帶你快速上手_rider groovyscript-CSDN博客

配置IDEA的Maven環境

為了方便使用系統中配置的Maven環境,將系統中已經安裝好的Maven集成到IDEA中。

四、編寫Spring Boot 應用

創建Spring Boot項目

1.?Spring Initializr是一個在線工具,用于快速生成一個新的Spring Boot項目:

https://start.spring.io/

2.?用戶能夠在其中選擇所需的依賴項、項目元數據以及其他配置選項,然后生成一個壓縮的項目包,可以直接下載并使用。

Spring Boot項目目錄結構

1.?src/main/java/:此目錄包含項目的主要Java 源代碼。

2.src/main/resources/:存放項目的資源文件,例如配置文件、國際化屬性文件、SQL 腳本等。
src/test/: 此目錄用于存放項目的測試代碼和測試資源。

3.?src/test/: 此目錄用于存放項目的測試代碼和測試資源。

4.pom.xml: Maven的配置文件,定義了項目的依賴、插件和其他設置。

5.? Application.java:這是Spring Boot應用程序的入口點。它通常包含@SpringBootApplication 注釋,并包含main 方法來啟動應用程序。

五、Spring Boot 系統配置

配置文件

1.Spring Boot 使用配置文件來配置和定制應用程序的行為

2.默認配置文件application.properties位于src/main/resources/目錄中

3.application.properties使用屬性鍵值對的方式配置應用程序屬性,鍵值對之間使用“=”進行分隔,例如指定服務器端口:

server.port=8081

自定義屬性配置

1. 在 Spring Boot中,配置通常來自兩個主要來源:
系統配置指的是Spring Boot 提供的“開箱即用”的默認配置,這些配置主要控制框架和第三方庫的行為,如啟動和服務器配置server.port、數據庫連接 spring.datasource、日志設置logging.level。
自定義配置通常用于應用程序特定的配置,這些配置不是框架或庫提供的,而是為滿足特定業務或功能需求而定義的,如與外部API交互的URL、超時時間、API 密鑰、應用程序的版本號、默認語言等。

2. Spring Boot 中框架提供了@Value 和 @ConfigurationProperties 兩個關鍵注解從配置文件中讀取并注入屬性值。

自定義屬性配置

1. @Value 允許你直接將配置文件中的單個屬性值注入到Spring bean 中的字段、方法參數或構造函數參數。
例如,@Value("${app.name}") 可以從配置文件中讀取app.name 的值并將其注入到對應的Java 字段。
2. @ConfigurationProperties注解允許你將配置文件中的多個相關屬性綁定到一個 Java bean,使得配置更加結構化。
例如,使用@ConfigurationProperties(prefix = "app") 可以將所有帶有 app 前綴的屬性綁定到一個 bean。

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

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

相關文章

深度解讀概率與證據權重 -Probability and the Weighing of Evidence

以下是I.J.古德&#xff08;I.J. Good&#xff09;的經典著作 《概率與證據權衡》&#xff08;Probability and the Weighing of Evidence, 1950&#xff09; 的中文詳細總結&#xff1a; 本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒…

跟著AI學習C#之項目實戰-電商平臺 Day6

&#x1f4c5; Day 6&#xff1a;后臺管理系統開發&#xff08;Admin Panel&#xff09; ? 今日目標&#xff1a; 創建管理員頁面布局實現商品管理&#xff08;CRUD&#xff09;實現訂單管理&#xff08;查看、狀態變更&#xff09;添加權限控制&#xff08;僅管理員可訪問&…

使用OpcUaHelper在C# WinForms中連接OPC UA服務器并讀取數據

使用OpcUaHelper在C# WinForms中連接OPC UA服務器并讀取數據 下面是一個完整的示例&#xff0c;展示如何使用OpcUaHelper庫在C# WinForms應用程序中連接OPC UA服務器并讀取數據。 1. 準備工作 首先&#xff0c;確保你已經安裝了OpcUaHelper NuGet包。可以通過NuGet包管理器控…

鴻蒙應用開發中的數據存儲:SQLite與Preferences全面解析

在鴻蒙&#xff08;HarmonyOS&#xff09;應用開發中&#xff0c;數據存儲是構建功能完整、用戶體驗良好的應用程序的關鍵環節。鴻蒙系統提供了多種數據存儲解決方案&#xff0c;其中SQLite數據庫和Preferences&#xff08;偏好設置&#xff09;是最常用的兩種方式。本文將深入…

夏至之日,共赴實時 AI 之約:RTE Open Day@AGI Playground 2025 回顧

每年 RTE 開發者社區的重磅活動—— RTE Open Day &#xff0c;也在六月的 AGI Playground 現場開啟今年的行程。這是 RTE Open Day 第五期現場&#xff0c;這期我們的關鍵詞是 「Real-Time AI」 和 「Voice Agent」&#xff0c;不僅有來自社區的 16 個項目&#xff0c;還有兩場…

Tomcat性能調優指南

文章目錄 一、Tomcat性能調優概述為什么需要調優Tomcat&#xff1f; 二、Tomcat架構與性能關鍵點三、JVM調優1. 內存配置優化2. 垃圾回收優化3. 其他JVM優化參數 四、連接器(Connector)調優1. NIO vs APR/Native2. 高級NIO配置 五、線程池優化六、會話管理優化1. 會話超時配置2…

Swift 小技巧:用單邊區間優雅處理模糊范圍

進入正題之前先科普一下 Swift 區間的知識。 Swift 中的區間有兩種類型&#xff1a;閉區間和半開區間。 閉區間&#xff1a;用 a...b 表示&#xff0c;包含 a 和 b。半開區間&#xff1a;用 a..<b 表示&#xff0c;包含 a 但不包含 b。 舉個例子 想判斷一個數字是否在 0 …

Tang Prime 20K板OV2640例程

準備用Tang Prime 20K開發板進行OV2640攝像頭采集驗證。 Tang Primer 20K是由開源硬件廠商SiPEED矽速科技推出&#xff0c;是一款以 GW2A-LV18PG256C8/I7 為主芯片的核心板&#xff0c;準備了 2 個擴展板&#xff0c;Dock 和 Lite。板卡包含有HDMI輸出&#xff0c;DVP接口&…

基于Anaconda環境開發IntelliJ IDEA實用JSON轉Java實體插件

在軟件開發中&#xff0c;將JSON數據轉換為Java實體類是常見需求。借助Anaconda環境強大的包管理能力與IntelliJ IDEA的插件開發體系&#xff0c;我們可以打造一款高效實用的JSON轉Java實體插件&#xff0c;顯著提升開發效率。下面將從需求分析、技術選型、開發實現到優化部署&…

idea運行到遠程機器 和 idea遠程JVM調試

一、idea運行到遠程機器 適用場景&#xff0c;本地連接不上遠程機器的部分組件&#xff0c;如&#xff1a;redis、數據庫。 缺點&#xff1a;每次修改程序&#xff0c;會復制所有的 依賴和class 啟動比較慢。 工作原理&#xff1a;遠程機器和本機器&#xff0c;都會啟動一個端口…

微信小程序接入騰訊云短信驗證碼流程

以下是針對 AA公司微信小程序接入騰訊云短信驗證碼 的 全流程操作指南&#xff0c;包含資質申請、簽名/模板配置、代碼對接的完整解決方案&#xff1a; 一、資質申請&#xff08;必須通過審核才能發短信&#xff09; 1?? 進入資質管理頁 路徑&#xff1a;騰訊云控制臺 → 短…

阿里云OSS文件上傳完整實現方案

一、前言 阿里云對象存儲服務(OSS)是一種海量、安全、低成本、高可靠的云存儲服務。本文將詳細介紹如何在Spring Boot項目中集成阿里云OSS實現文件上傳功能。 二、準備工作 1. 獲取OSS配置信息 在開始前&#xff0c;您需要準備以下OSS配置信息&#xff1a; endpoint: OSS服…

【軟考--軟件設計師】10.2 關系型數據庫

10 模式分解 分解 模式分解:將一個關系模式分解為多個子模式 模式分解就是模式規范化的工具&#xff0c;模式分解使用無損連接和保持函數依賴來衡量模式分解后是否導致原有模式中部分信息丟失。 無損連接 保持函數依賴 11、事務管理 事務的ACID性質: (1)原子性(Atomicit…

python訓練day44 預訓練模型

預訓練模型發展史 預訓練模型的訓練策略 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt# 設置中文字體支持 plt.rcParams["…

[論文閱讀]MISSRce

論文title: MISSRec: Pre-training and Transferring Multi-modal Interest-aware Sequence Representation for Recommendation

Redis學習筆記——黑馬點評 附近商鋪到UV統計 完結

前言&#xff1a; 今天完結了Redis的所有實戰篇。 學習收獲&#xff1a; GEO數據結構&#xff1a; GEO就是Geolocation的簡寫形式&#xff0c;代表地理坐標。Redis在3.2版本中加入對Geo的支持&#xff0c;存儲、管理和操作地理空間數據的特殊數據結構&#xff0c;它能高效處…

【客戶端排查】mac電腦怎么查看客戶端的實時運行日志

先退出客戶端&#xff1b;打開訪達里的應用程序&#xff1b; 打開【顯示包內容】&#xff1b; 找到MacOS 雙擊里面的終端程序&#xff1b; 雙擊后&#xff0c;客戶端會自動啟動&#xff0c;且可以在終端中查看客戶端的實時日志啦~

HarmonyOS NEXT倉頡開發語言實戰案例:健身App

各位好&#xff0c;今日分享一個健身app的首頁&#xff1a; 這個頁面看起比之前的案例要稍微復雜一些&#xff0c;主要在于頂部部分&#xff0c;有重疊的背景&#xff0c;還有偏移的部分。重疊布局可以使用Stack容器實現&#xff0c;超出容器范圍的偏移可以使用負數間距來實現&…

TreeMap源碼分析 紅黑樹

今天嘗試刨一下TreeMap的祖墳。 底層結構對比 先來看一下與HashMap、LinkedHashMap和TreeMap的對比&#xff0c;同時就當是復習一下&#xff1a; HashMap使用數組存儲數據&#xff0c;并使用單向鏈表結構存儲hash沖突數據&#xff0c;同一個沖突桶中數據量大的時候&#xff…

華為云Flexus+DeepSeek征文|基于Dify構建拍照識題智能學習助手

華為云FlexusDeepSeek征文&#xff5c;基于Dify構建拍照識題智能學習助手 一、構建拍照識題智能學習助手前言二、構建拍照識題智能學習助手環境2.1 基于FlexusX實例的Dify平臺2.2 基于MaaS的模型API商用服務 三、構建拍照識題智能學習助手實戰3.1 配置Dify環境3.2 配置Dify工具…