跟做springboot尚品甄選項目

springboot+vue3

【尚硅谷Java項目《尚品甄選》 SpringBoot+SpringCloud萌新學會企業級java項目】003.后臺系統-搭建前端環境(工程創建)_嗶哩嗶哩_bilibili

E:\project\AllProJect\Shangpin Selection\項目材料素材\課件\尚品甄選項目課件

前端套用框架步驟

位置:E:\project\AllProJect\Shangpin Selection\項目材料素材\資料\資料\04-前端模板

下載依賴

npm 

# 將permission.js中的相關代碼
# 原代碼:import { TOKEN } from '@/store/modules/app' // TOKEN變量名
# 更改為如下代碼:
import { TOKEN } from '@/pinia/modules/app' // TOKEN變量名

修改完后,在master目錄下開啟前端項目

npm start

后端項目搭建步驟

創建項目

刪除src目錄,因為不寫具體代碼

創建模塊目錄

刪除common的src,并且新建兩個模塊

  • spzx-parent: 尚品甄選項目的父工程,進行項目依賴的統一管理,打包方式為pom
  • spzx-common: 尚品甄選項目公共模塊的管理模塊,父工程為spzx-parent
  • common-util: 工具類模塊,父工程為spzx-common
  • common-service:公共服務模塊,父工程為spzx-common
  • spzx-model: 尚品甄選實體類模塊
  • spzx-manager: 尚品甄選項目后臺管理系統的后端服務

下載maven

spzx-parent

在此pom.xml中修改文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xuan</groupId><artifactId>spzx-parent</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>spzx-common</module><module>spzx-model</module><module>spzx-manager</module></modules><!-- 指定父工程 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version></parent><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mysql.verison>8.0.30</mysql.verison><fastjson.version>2.0.21</fastjson.version><lombok.version>1.18.20</lombok.version><mybatis.version>3.0.1</mybatis.version></properties><!-- 管理依賴,版本鎖定 --><dependencyManagement><dependencies><!-- mybatis和spring boot整合的起步依賴 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.version}</version></dependency><!-- mysql驅動 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--fastjson--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><!-- lombok依賴 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency></dependencies></dependencyManagement></project>

spzx-common

pom加入

<dependencies><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.2</version></dependency>
</dependencies>

common-util

<dependencies><!-- fastjson依賴 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId></dependency><dependency><groupId>com.xuan</groupId><artifactId>spzx-model</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><scope>provided </scope></dependency>
</dependencies>

common-service

在spzx-common下面創建該子模塊,并導入如下依賴:

<dependencies><!-- common-util模塊 --><dependency><groupId>com.xuan</groupId><artifactId>common-util</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- spzx-model模塊 --><dependency><groupId>com.xuan</groupId><artifactId>spzx-model</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- spring boot web開發所需要的起步依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><scope>provided</scope></dependency></dependencies>

spzx-model

  • 在spzx-parent下面創建該子模塊,并導入如下依賴:
<dependencies><!-- lombok的依賴 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.1.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId></dependency>
</dependencies>
復制實體類(也可以先不創建)

位置E:\project\AllProJect\Shangpin Selection\項目材料素材\資料\資料\01-實體類

spzx-manager

在spzx-parent下面創建該子模塊,并導入如下依賴:

<dependencies><!-- spring boot web開發所需要的起步依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- redis的起步依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- mybatis的起步依賴 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!-- mysql驅動 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- common-service依賴 --><dependency><groupId>com.xuan</groupId><artifactId>common-service</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.3</version></dependency>
</dependencies>

安裝docker

下載虛擬機

VM虛擬機的下載與安裝教程_vm下載教程-CSDN博客

新建虛擬機

LinuxVM安裝與配置教程:從VMware到Docker與MySQL部署-CSDN博客

看自己筆記安裝完了docker繼續

如果不知道怎么安裝docker可以參照我的筆記

數據庫環境準備

本地安裝mysql數據庫使用的是docker安裝,對應的步驟如下所示:

  • 部署mysql

開發階段也可以連接本地mysql服務

# 拉取鏡像
docker pull mysql:8.0.30# 創建容器
docker run -d --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -v mysql_conf:/etc/mysql --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.30

docker安裝完成mysql8,如果使用sqlyog或者navite連接,需要修改密碼加密規則,因為低版本客戶端工具不支持mysql8最新的加密規則。如果使用客戶端連接,需要修改:

  • docker exec -it 容器ID bash進入mysql容器
  • mysql -uroot -p 登錄你的 MySQL 數據庫,然后 執行這條SQL:
  • exit退出
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';

然后再重新配置SQLyog的連接,重新填寫密碼,則可連接成功了。

把數據庫拖入

部署Redis

  • 使用docker部署Redis,具體的操作如下所示:

開發階段也可以連接本地redis服務

#1 拉取鏡像
docker pull redis:7.0.10#2 在宿主機的 /var/lib/docker/volumes/redis-config/_data/目錄下創建一個redis的配置文件,
vim redis.conf
# 內容如下所示
#開啟持久化
appendonly yes
port 6379
# requirepass 1234
bind 0.0.0.0#3 如果/var/lib/docker/volumes沒有redis-config,創建數據卷 
docker volume create redis-config#4 創建容器
docker run -d -p 6379:6379 --restart=always \
-v redis-config:/etc/redis/config \
-v redis-data:/data \
--name redis redis \
redis-server /etc/redis/config/redis.conf

整合Swagger

Swagger

  • Swagger是一種基于OpenAPI規范的API文檔生成工具,它可以根據Java代碼中的注解自動生成API接口文檔,并提供UI界面進行在線測試和調試。
  • Swagger為開發人員提供了更加方便、直觀的API管理方式,有助于提升API的可讀性和可維護性。
  • Swagger的主要特點包括:

1、自動生成API文檔:通過在Java代碼中添加Swagger注解,Swagger能夠自動地解析API接口的參數、響應等信息,并生成相應的API文檔。

2、在線測試接口:Swagger提供了UI界面,可以方便地進行API接口的測試和調試,無需單獨使用HTTP客戶端來測試接口。

3、支持多種語言和框架:Swagger不僅支持Java語言和Spring框架,還支持多種其他語言和框架,如PHP、Python、Go等。

4、擴展性強:Swagger提供了多種擴展機制和插件,可以滿足各種項目的需要,如集成OAuth2、自定義UI等。

Swagger提供的UI界面相比于另外一款Api文檔生成工具Knife4j較為簡陋。

Knife4j使用

官方文檔使用地址:快速開始 | Knife4j

具體的步驟:

在common-service模塊中添加knife4j所需要的配置類

@Configuration
public class Knife4jConfig {@Beanpublic GroupedOpenApi adminApi() {      // 創建了一個api接口的分組return GroupedOpenApi.builder().group("admin-api")         // 分組名稱隨便起.pathsToMatch("/admin/**")  // 接口請求路徑規則要求用admin開頭.build();}/**** @description 自定義接口信息*/@Beanpublic OpenAPI customOpenAPI() {return new OpenAPI().info(new Info().title("尚品甑選API接口文檔").version("1.0").description("尚品甑選API接口文檔").contact(new Contact().name("atguigu"))); // 設定作者}}

啟動項目就可以訪問到knife4j所生成的接口文檔了。訪問地址:http://項目ip:端口號/doc.html

常見注解

在Knife4j中也提供了一些注解,讓我們對接口加以說明,常見的注解如下所示:

@Tag: 用在controller類上,對controller進行說明
@Operation: 用在controller接口方法上對接口進行描述
@Parameters:用在controller接口方法上對單個參數進行描述
@Schema: 用在實體類和實體類屬性上,對實體類以及實體類屬性進行描述

舉例說明:

@Tag(name = "首頁接口")
public class IndexController {@Operation(summary = "用戶登錄")public Result<LoginVo> login(@RequestBody LoginDto loginDto) {...}@Operation(summary = "用戶退出")@Parameters(value = {@Parameter(name = "令牌參數" , required = true)})@GetMapping(value = "/logout")public Result logout(@RequestHeader(value = "token") String token) {...}}@Data
@Schema(description = "用戶登錄請求參數")
public class LoginDto {@Schema(description = "用戶名")private String userName ;@Schema(description = "密碼")private String password ;@Schema(description = "提交驗證碼")private String captcha ;@Schema(description = "驗證碼key")private String codeKey ;}

導出

Knife4j生成的接口文檔是一個在線的接口文檔使用起來不是特別的方便,當然Knife4j也支持離線接口文檔,并且支持導出json格式的數據,如下所示:

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

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

相關文章

【Linux】創建線程

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 文章目錄 一、為什么需要線程&#xff1f; 創建線程 示例&#xff1a;計算斐波恩夕法 一、為什么需要線程&#xff1f; 在多核處理器的計算機上&#xff0c;線程可…

HTML應用指南:利用POST請求獲取全國九號電動車體驗店服務店位置信息

九號公司(Ninebot)作為全球領先的智能短途出行解決方案提供商,始終秉持“智慧移動,愉悅生活”的品牌理念,致力于為個人用戶打造安全、智能、時尚的城市出行體驗。依托“智能硬件 + 數字服務 + 線下觸點”三位一體的戰略布局,九號公司已建立起覆蓋全國、輻射全球的銷售與服…

Kafka面試精講 Day 4:Consumer消費者模型與消費組

【Kafka面試精講 Day 4】Consumer消費者模型與消費組 在“Kafka面試精講”系列的第四天&#xff0c;我們將深入探討Kafka的核心組件之一——Consumer消費者模型與消費組&#xff08;Consumer Group&#xff09;。這是Kafka實現高吞吐、可擴展消息消費的關鍵機制&#xff0c;也…

使用 Uni-app 打包 外鏈地址APK 及 iOS 注意事項

本文詳細介紹了如何使用 Uni-app 框架將項目打包為 Android APK 和 iOS 應用&#xff0c;重點講解了 minSdkVersion、targetSdkVersion 和 abiFilters 的配置&#xff0c;以及 iOS 開發的注意事項。文章還包含了您提供的 WebView 示例代碼&#xff0c;并提供了關鍵的注意事項&a…

異常處理小妙招——3.構造函數的安全第一原則:為什么不在構造函數中拋出異常?

文章目錄災難性的生日派對構造函數&#xff1a;對象的出生證明安全第一&#xff1a;嚴格的出生檢查為什么要在構造函數中嚴格驗證&#xff1f;1. 避免"僵尸對象"2. Fail-Fast&#xff08;快速失敗&#xff09;原則現實世界的實踐建議1. 使用工廠方法模式2. 使用Build…

iptables 和 ip route

文章目錄iptables原理及常用命令表鏈鏈表鏈表總結iptables 常用命令及參數1. 規則管理命令 (Commands)2. 規則匹配參數 (Rule-Specification - Matches)3. 目標動作參數 (Target)命令示例配置流程示例ip route常用命令iptables和ip route的聯系實用命令示例對比iptables原理及常…

RPC和HTTP的區別?

RPC和HTTP是兩種不同的通信協議&#xff0c;它們在通信方式、性能效率以及靈活性可擴展性等方面存在區別。以下是具體分析&#xff1a; 通信方式 RPC&#xff1a;RPC是基于遠程過程調用的二進制協議&#xff0c;它允許客戶端像調用本地函數一樣調用遠程服務器上的函數或方法[2]…

貝葉斯分類(Bayes Classify)

一. 核心思想貝葉斯分類是一類基于貝葉斯定理&#xff08;Bayes Theorem&#xff09;和概率統計的分類算法&#xff0c;核心思想是 “通過已知的先驗概率&#xff0c;結合數據的似然性&#xff0c;計算后驗概率&#xff0c;最終將樣本歸為后驗概率最高的類別”。它在機器學習、…

怎么熟悉業務,我是做前端的,但對業務了解沒有渠道

作為前端開發者&#xff0c;想深入了解業務但“沒有渠道”&#xff0c;這是非常普遍的痛點。很多前端同學只接到“切圖實現頁面”的任務&#xff0c;久而久之就成了“實現工具人”。但業務理解力&#xff0c;恰恰是區分“初級”和“高級”前端的核心分水嶺。 好消息是&#xff…

如何批量在PDF文檔最后一頁蓋章?

在面對上百份需要處理的 PDF 文檔時&#xff0c;逐個打開文檔蓋章再進行保存&#xff0c;這些步驟不僅提高我們工作的繁瑣&#xff0c;還容易導致處理位置錯誤或遺漏。那么怎么去將 PDF 文檔末頁實現批量自動打上電子印章&#xff1f;一般的方式沒有辦法來滿足我們高效率辦公的…

Keras/TensorFlow 中 `predict()` 函數詳細說明

Keras/TensorFlow 中 predict() 函數詳細說明 predict() 是 Keras/TensorFlow 中用于模型推理的核心方法&#xff0c;用于對輸入數據生成預測輸出。下面我將從多個維度全面介紹這個函數的用法和細節。 一、基礎語法和參數 基本形式 predictions model.predict(x,batch_sizeNon…

題解:UVA1589 象棋 Xiangqi

看到代碼別急著走&#xff0c;還要解釋呢&#xff01;哈哈&#xff0c;知道這個題我是怎么來的嗎&#xff1f;和爸爸下象棋20場輸17場和2場QWQ于是乎我就想找到一個可以自動幫我下棋的程序&#xff0c;在洛谷上面搜索&#xff0c;就搜索到了這個題。很好奇UVA的為啥空間限制是0…

基于YOLOv11的腦卒中目標檢測及其完整數據集——推動智能醫療發展的新機遇!

在當今科技迅速發展的時代&#xff0c;腦卒中作為一種嚴重威脅人類健康的疾病&#xff0c;其早期的檢測和及時的干預顯得尤為重要。為此&#xff0c;本項目推出基于YOLOv11的腦卒中目標檢測系統&#xff0c;結合完整的數據集&#xff0c;不僅提高了檢測的效率&#xff0c;更為醫…

sed——Stream Editor流編輯器

文章目錄前言一、什么是sed二、sed的原理2.1 sed工作流程的三個步驟2.2 sed的兩個重要空間&#xff1a;2.3 sed的具體運作流程三、sed的常見用法3.1 sed的基本格式3.2 常用選項3.3 常用操作3.3.1 基本語法規則3.3.2 常用操作命令3.4 操作用法示例3.4.1 輸出符合條件的文本&…

Zotero白嫖騰訊云翻譯

Zotero白嫖騰訊云無限制字數翻譯 文章目錄Zotero白嫖騰訊云無限制字數翻譯1、安裝插件1、登錄騰訊云2、找到訪問管理進入3、創建一個子用戶4、啟用機器翻譯功能5、復制秘鑰6、設置到Zotero1、安裝插件 zotero-pdf-translate&#xff1a;https://github.com/windingwind/zotero…

TCP多進程和多線程并發服務

進程和線程的區別&#xff1a; 詳細的可以參考這樣文檔進程和線程的區別(超詳細)-CSDN博客 核心比喻 進程 一個工廠&#xff1a;這個工廠擁有獨立的資源&#xff08;廠房、原材料、資金、電力&#xff09;。每個工廠之間是相互隔離的&#xff0c;一個工廠著火…

計算機畢業設計springboot基于Java+Spring的疫苗接種管理系統的設計與實現 基于Spring Boot框架的疫苗接種信息管理系統開發與應用 Java與Spring技術驅動的疫苗接種管理

計算機畢業設計springboot基于JavaSpring的疫苗接種管理系統的設計與實現69geq9 &#xff08;配套有源碼 程序 mysql數據庫 論文&#xff09; 本套源碼可以在文本聯xi,先看具體系統功能演示視頻領取&#xff0c;可分享源碼參考。隨著信息技術的飛速發展&#xff0c;計算機技術在…

C/C++圣誕樹①

寫在前面 圣誕節將至&#xff0c;我總想用代碼做點什么&#xff0c;來表達對這個溫馨節日的敬意。于是&#xff0c;我決定用C語言在控制臺中繪制一幅充滿節日氣氛的圣誕樹畫面。它不僅有閃爍的雪花、五彩的燈光&#xff0c;還有一顆顆精心雕琢的心形圖案&#xff0c;仿佛把整個…

【小白入】顯示器核心參數對比度簡介

對比度是一個非常核心的顯示器參數。下面我們來了解一下。一、核心定義&#xff1a;什么是對比度&#xff1f;顯示器的對比度&#xff08;Contrast Ratio&#xff09;是指其最亮狀態&#xff08;白色&#xff09;與最暗狀態&#xff08;黑色&#xff09;之間的亮度比值。簡單來…

【項目】多模態RAG必備神器—olmOCR重塑PDF文本提取格局

【項目】多模態RAG必備神器—olmOCR重塑PDF文本提取格局&#xff08;一&#xff09;olmOCR是什么&#xff1f;&#xff08;二&#xff09;olmOCR 的核心技術&#xff08;1&#xff09;文檔錨定技術&#xff08;2&#xff09;微調 7B 視覺語言模型&#xff08;三&#xff09;olm…