当前位置: 首页 > web >正文

跟做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.xdnf.cn/news/19971.html

相关文章:

  • 理解用户需求
  • 第6章:垃圾回收分析与调优
  • Java内存模型解析:并发编程的基石
  • DARPA OFFSET公开资料探究
  • GEO优化专家孟庆涛:优质内容是GEO优化的核心
  • 后端一次性返回十万条数据时,前端需要采用多种性能优化策略来避免页面卡顿
  • 日志打印--idf的esp32
  • Agent开发基础---提示词编写
  • 【数据分享】土地利用矢量shp数据分享-北京
  • AI Agent重构SOC:下一代智能安全运营平台的能力跃迁
  • 产线自动化效率上不去?打破设备和平台的“数据孤岛”是关键!
  • LeetCode 面试题 16.06.最小差
  • JavaScript原型与原型链:对象的家族传承系统
  • Springboot3+SpringSecurity6Oauth2+vue3前后端分离认证授权-资源服务
  • 单片机键盘接口程序设计(汇编语言)
  • 血缘元数据采集开放标准:OpenLineage Guides 在 Airflow 中使用 OpenLineage Proxy
  • 快速在RK3588上部署运行DeepSeek-R1-Distill-Qwen-1.5B模型并进行板端推理调用流程记录
  • 重生之IOday4————多进程通信
  • Python学习笔记--使用Django修改和删除数据
  • Python学习笔记--使用Django查询数据
  • 网络协议之https?
  • 智能开发新突破:大模型驱动的QAC与TESSY助手实战分享
  • 【工具变量】上市公司绿色供应链管理示范企业DID数据(2010-2024年)
  • phpstorm 操作git 另外的操作在 我的收藏
  • Maven动态控制版本号秘籍:高效发包部署,版本管理不再头疼!
  • Top 10 Kali Linux Tools for Hacking 2025.2
  • 《WINDOWS 环境下32位汇编语言程序设计》第11章 动态链接库和钩子
  • nano banana官方最强Prompt模板来了!六大场景模板详解
  • GEM5学习(4): 运行全系统模式的ARM系统
  • 如何构建企业级RAG知识库?实战方法、关键细节与平台选型