一、?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。