day01:項目概述,環境搭建

文章目錄

  • 軟件開發整體介紹
    • 軟件開發流程
    • 角色分工
    • 軟件環境
  • 外賣平臺項目介紹
    • 項目介紹
      • 定位
      • 功能架構
    • 產品原型
    • 技術選型
  • 開發環境搭建
    • 整體結構:前后端分離開發
      • 前后端混合開發缺點
      • 前后端分離開發
    • 前端環境搭建
      • Nginx
    • 后端環境搭建
      • 熟悉項目結構
      • 使用Git進行版本控制
      • 數據庫環境搭建
    • 登錄功能
      • 分析代碼特點
      • Nginx反向代理和負載均衡
      • 會話跟蹤技術方案
      • JWT介紹
      • JWT生成測試
      • JWT校驗測試
      • 應用jwt令牌登錄和校驗
      • 密碼加密
  • 導入接口文檔
    • 前后端開發流程
    • 操作步驟
  • Swagger
    • 介紹
    • 使用方式
    • 常用注解

軟件開發整體介紹

軟件開發流程

  • 需求分析:需求規格說明書、產品原型
  • 設計:UI設計、數據庫設計、接口設計
  • 編碼:項目代碼、單元測試
  • 測試:測試用例、測試報告
  • 上線運維:軟件環境安裝、配置

角色分工

  • 項目經理:對整個項目負責,任務分配,把控進度
  • 產品經理:進行需求調研,輸出需求調研文檔、產品原型等
  • UI設計師:根據產品原型輸出界面效果圖
  • 架構師:項目整體架構設計、技術選型等
  • 開發工程師:代碼實現
  • 測試工程師:編寫測試用例,輸出測試報告
  • 運維工程師:軟件環境搭建、項目上線

軟件環境

  • 開發環境(development):開發人員在開發階段使用的環境,一般外部用戶無法訪問
  • 測試環境(testing):專門給測試人員使用的環境,用于測試項目,一般外部用戶無法訪問
  • 生成環境(production):即線上環境,正式提供對外服務的環境

外賣平臺項目介紹

項目介紹

定位

專門為餐飲企業(餐廳、飯店)定制的一款軟件產品
管理端–外賣商家使用
用戶端–點餐用戶使用

功能架構

體現項目中的業務功能模塊
image.png

產品原型

用于展示項目的業務功能,一般由產品經理進行設計
管理端
image.png
用戶端
image.png

技術選型

展示項目中使用到的技術框架和中間件等
image.png

開發環境搭建

整體結構:前后端分離開發

image.png

前后端混合開發缺點

  1. 溝通成本高
  2. 分工不明確
  3. 不便管理
  4. 不便維護擴展

前后端分離開發

當前最為主流的開發模式:前后端開發 分開部署運行
image.png
特點:解耦,便于管理、維護和擴展

前端環境搭建

前端工程基于Nginx運行

Nginx

介紹:Nginx是一款輕量級的Web服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。
特點:占有內存少,并發能力強,在各大型互聯網公司都有非常廣泛的使用
官網:https://nginx.org/
image.png
啟動Nginx:雙擊nginx.exe即可啟動nginx服務,訪問端口號為80
注意事項

  • Nginx默認占用80端口號,如果80端口號被占用,可以在nginx.conf中修改默認端口號(netstat -ano | findStr 80)
  • 修改了nginx.conf配置文件,需要重啟nginx服務器(關閉然后再開,可以通過kill nginx.bat結束nginx,然后再次雙擊nginx.exe)

后端環境搭建

后端工程基于maven進行項目構建,并且進行分模塊開發
image.png

熟悉項目結構

image.png

  1. sky-common子模塊存放的是一些公共類,可以供其他模塊使用

image.png

  1. sky-pojo子模塊中存放的是一些entity、dto、vo

4.png
pojo:plain old java object

  1. sky-server子模塊中存放的是 配置文件、配置類、攔截器、controller、service、mapper、啟動類等

image.png

使用Git進行版本控制

  • 創建Git本地倉庫
  • 創建Git遠程倉庫
  • 將本地文件推送到Git遠程倉庫

數據庫環境搭建

通過數據庫建表語句創建數據庫表結構
image.png

登錄功能

分析代碼特點

后端的初始工程中已經實現了登錄功能,直接進行前后端聯調測試即可
image.png

  1. @Builder注解的作用

lombok提供的注解,給類提供了builder()鏈式構建對象方式
EmployeeVO.builder().id(employee.getId()).build();

  1. @Slf4j注解的作用

lombok提供的注解,用于輸出日志,打印信息完整,包含時間、所在類完整名等
log.info(“輸出info日志”);
log.error(“輸出error錯誤日志”);

  1. 使用的是什么會話技術

session

Nginx反向代理和負載均衡

image.png
Nginx反向代理:就是將前端發送的動態請求由nginx轉發到后端服務器
image.png
反向代理的好處

  • 提高訪問速度
  • 進行負載均衡
  • 保證后端服務安全

所謂負載均衡,就是把大量的請求按照我們指定的方式均衡的分配給集群中的每臺服務器
nginx反向代理的配置方式
image.png
nginx負載均衡的配置方式
image.png
nginx負載均衡策略
image.png
默認是輪詢方式;使用weight方式,需要在每個server 192.168.100.***:8080 加上weight = 數字;使用剩下4個策略,需要在server上面加載ip_hash;即可

會話跟蹤技術方案

image.png
跨域:跨域區分三個維度:協議、IP/域名、端口

JWT介紹

全稱:JSON Web Token
官網https://jwt.io/
介紹:定義了一種簡潔的、自包含的格式,用于在通信雙方以json數據格式安全的傳輸信息。由于數字簽名的存在,這些信息是可靠的
組成

  • 第一部分:Header(頭),記錄令牌類型、簽名算法等
  • 第二部分:Payload(有效載荷),攜帶一些自定義信息、默認信息等
  • 第三部分:Signature(簽名),放置Token被篡改,確保安全性。將header、payload,并加入指定密鑰,通過指定簽名算法計算而來

image.png
場景登錄驗證

  1. 登錄成功后,生成令牌,并返回給前端
  2. 后續每個請求,都要攜帶JWT令牌,系統在每次請求處理之前,先校驗令牌,通過后,再處理

image.png

JWT生成測試

image.png

JWT校驗測試

image.png
注意事項

  • jwt校驗時使用的簽名密鑰,必須和生成jwt令牌時使用的密鑰是配套的
  • 如果jwt令牌解析校驗時報錯,則說明jwt令牌被篡改失效了,令牌非法

應用jwt令牌登錄和校驗

生成jwt
image.png
校驗jwt
image.png

密碼加密

問題:員工表中的密碼是明文存儲,安全性太低
方法:使用MD5加密方式對明文密碼加密
image.png

導入接口文檔

前后端開發流程

image.png

操作步驟

使用YApi

Swagger

介紹

使用Swagger你只需要按照它的規范去定義接口及接口相關信息,就可以做到生成接口文檔,以及在線接口調試頁面
官網:https://swagger.io/
Knife4是為Java MVC框架集成Swagger生成Api文檔的增強解決方案

使用方式

  1. 導入knife4的maven坐標
  2. 在配置類中加入knife4相關配置
  3. 設置靜態資源映射,否則接口文檔頁面無法訪問

image.png
image.pngimage.png
接口文檔訪問路徑為localhost:8080/doc.html
問題:通過Swagger就可以生成接口文檔,那么就不需要YApi了?

  1. YApi是設計階段使用的工具,管理和維護接口
  2. Swagger是在開發階段使用的框架,幫助后端開發人員做后端的接口測試

常用注解

通過注解可以控制生成的接口文檔,使接口文檔擁有更好的可讀性,常見注解如下:
image.png

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

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

相關文章

【C++】AVL樹(旋轉、平衡因子)

🌈個人主頁:秦jh_-CSDN博客🔥 系列專欄:https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 ? 目錄 前言 AVL樹的概念 節點 插入 AVL樹的旋轉 新節點插入較高左子樹的左側---左左:…

【C++】stack和queue的模擬實現 雙端隊列deque的介紹

🔥個人主頁: Forcible Bug Maker 🔥專欄: STL || C 目錄 🌈前言🔥stack的模擬實現🔥queue的模擬實現🔥deque(雙端隊列)deque的缺陷 🌈為什么選擇…

基于Go 1.19的站點模板爬蟲

創建一個基于Go 1.19的站點模板爬蟲涉及到幾個關鍵步驟:初始化項目,安裝必要的包,編寫爬蟲邏輯,以及處理和存儲抓取的數據。下面是一個簡單的示例,使用goquery庫來解析HTML,并使用net/http來發起HTTP請求。…

【containerd】解決敲擊crictl images命令報錯問題

【Containerd】解決輸入crictl images命令報錯問題 文章目錄 【Containerd】解決輸入crictl images命令報錯問題問題復現解決辦法驗證結果參考鏈接 問題復現 [rootmaster01 ~]# crictl images WARN[0000] image connect using default endpoints: [unix:///var/run/dockershim…

七、Docker常規軟件安裝

目錄 一、總體步驟 二、安裝tomcat 1、docker hub上查找tomcat鏡像 三、安裝MySQL 1、查看MySQL鏡像 2、拉取MySQL鏡像到本地,本次拉取MySQL5.7 3、使用MySQL鏡像創建容器 4、使用Windows數據庫工具,連接MySQL實例 5、常見問題 6、創建MySQL容器實例 7、新…

DDP:微軟提出動態detection head選擇,適配計算資源有限場景 | CVPR 2022

DPP能夠對目標檢測proposal進行非統一處理,根據proposal選擇不同復雜度的算子,加速整體推理過程。從實驗結果來看,效果非常不錯 來源:曉飛的算法工程筆記 公眾號 論文: Should All Proposals be Treated Equally in Object Detect…

同聲傳譯app哪個好免費?對話交流推薦這5個

暑期到,也是旅游出行的好日子~自打周邊不少國家都開放免簽政策之后,出國游也變得更加方便了~對于外語水平不高的朋友來講,想要保證出行體驗,其實手上只要備好一個同聲傳譯app就OK! 倘若你還不清楚都有哪些同聲傳譯app…

背部筋膜炎的癥狀及治療

背部筋膜炎,也稱為胸背肌筋膜炎,主要是由于勞損或風寒濕邪侵入引起的。其典型癥狀主要包括: 1、疼痛:背部筋膜一旦出現炎癥性病變,會對周圍交感神經組織產生刺激作用,從而引起不同程度的疼痛癥狀。 2、僵…

NAT:地址轉換技術

為什么會引入NAT? NAT(網絡地址轉換)的引入主要是為了解決兩個問題 IPv4地址短缺:互聯網快速發展,可用的公網IP地址越來越少。網絡安全:需要一種方法來保護內部網絡不被直接暴露在互聯網上。 IPv4 &…

低通濾波以及卡爾曼濾波

先講解幾個低通濾波,低通濾波比卡爾曼濾波簡單,因為卡爾曼濾波涉及到兩個輸入量,一個是控制量,一個是觀測量,而低通濾波是一個輸入量 1,利用工具箱配置低通濾波 參考地址:https://blog.csdn.net…

SystemUIService啟動-Android13

SystemUIService啟動-Android13 1、SystemUIService啟動2、其他SystemUI services啟動2.1 Dagger依賴注入2.2 Recents為例 1、SystemUIService啟動 SystemUI啟動&#xff0c;及其SystemUIService啟動 <!-- SystemUi service component --><string name"config_s…

應用層協議原理——可供應用程序使用的運輸服務

前面講過套接字是應用程序進程和運輸層協議之間的接口。在發送端的應用程序將報文推進該套接字。在該套接字的另一側&#xff0c;運輸層協議負責使該報文進入接收進程的套接字。 包括因特網在內的很多網絡提供了不止一種運輸層協議。當開發一個應用時&#xff0c;必須選擇一種可…

什么是海外倉管理自動化?策略及落地實施步驟指南

作為海外倉的管理者&#xff0c;你每天都面臨提高海外倉運營效率、降低成本和滿足客戶需求的問題。海外倉自動化管理技術為這些問題提供了不錯的解決思路&#xff0c;不過和任何新技術一樣&#xff0c;從策略到落地實施&#xff0c;都有一個對基礎邏輯的認識過程。 今天我們整…

重生奇跡mu的地圖名

地圖之一&#xff1a;勇者大陸 勇者大陸地處奇跡大陸中央。終年陰雨連綿&#xff0c;氣候潮濕悶熱。植物由充滿黑暗陰森氣氛的草地所構成。這里的NPC數量是所有地圖中最多的。因為地步交通要沖&#xff0c;所以也是玩家聚集最多的地方。 這里是劍士、魔法師、魔劍士和圣導師初…

vue3關于在線考試 實現監考功能 推流拉流

vue3 關于在線考試 實現監考功能&#xff0c; pc端考試 本質是直播推流的功能 使用騰訊云直播: 在線文檔 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"icon" href"/f…

永磁同步電機控制算法--最大轉矩電流比控制(虛擬信號注入法)

目前&#xff0c;國內外相關學者對 MTPA 控制方法進行了一系列的理論研究與仿真分析。通過研究取得的成果綜合來看&#xff0c;該控制方法主要有&#xff1a;直接公式計算法、曲線擬合法、查表法、搜索法、高頻信號注入法以及參數辨識法等。 之前的文章中已經介紹了直接公式計…

Java.Maths類的常用方法

Maths類的常用方法 Math 類是 Java 標準庫中的一個類&#xff0c;位于 java.lang 包中。它提供了一些基本的數學操作方法&#xff0c;這些方法都是靜態的。以下是 Math 類的所有方法&#xff1a; 數學常量 double E: 自然對數的底數&#xff08;約等于 2.718&#xff09;doub…

對于“百模大戰”,幾乎所有大佬的口風都180 °大轉變了?

文 | 智能相對論 作者 | 陳泊丞 在2024世界人工智能大會暨人工智能全球治理高級別會議產業發展主論壇上&#xff0c;百度創始人、董事長兼首席執行官李彥宏談了些對于AI大模型的看法&#xff0c;語驚四座。 他先是指出&#xff0c;“百模大戰造成了社會資源的巨大浪費&#x…

ubuntu 如何復制文件夾的內容

在Ubuntu中&#xff0c;您可以使用cp命令來復制文件夾的內容。如果您想要復制文件夾及其所有內容&#xff08;包括子文件夾&#xff09;&#xff0c;可以使用-r&#xff08;遞歸&#xff09;選項。 cp -r /path/to/source/folder/* /path/to/destination/folder/ 這個命令會將s…

現在2024年網絡安全真實情況還好就業嗎?_2024年網絡安全專業到底行不行了

2024年網絡安全行業的前景看起來非常樂觀。根據當前的趨勢和發展&#xff0c;一些趨勢和發展可能對2024年網絡安全行業產生影響&#xff1a; 5G技術的廣泛應用&#xff1a;5G技術的普及將會使互聯網的速度更快&#xff0c;同時也將帶來更多的網絡威脅和安全挑戰。網絡安全專家…