苍穹外卖项目总结-个人-更新中

目录

Day-01 苍穹外卖项目部署

1.1 苍穹外卖设计框架

1.2 苍穹外卖开发环境

1.3 苍穹外卖项目部署

1.3.1 反向代理Nginx配置

1.3.2 数据库文件导入

1.3.3 部署IDEA项目

1.3.4 前后端联调

1.3.5 反向代理Nginx流程

1.3.6 标签(TODO、@Api)和接口调试

1.4 本章小结


Day-01 苍穹外卖项目部署

1.1 苍穹外卖设计框架

苍穹外卖项目业务板块分为用户端和管理端。用户端主要关注的是用户体验,包括登录、浏览、下单、支付等流程。商家端则更侧重于后台管理和运营,包括员工管理、菜品管理、订单处理和数据分析等功能。

图1.1 苍穹外卖业务板块(引用:【苍穹外卖 | 项目日记】第九天 万字总结-CSDN博客

技术框架采用了一套全面且现代化的微服务架构,从前端到后端覆盖了用户层、网关层、应用层和数据层。在用户层,使用了Node.js、Vue.js和微信小程序等技术实现高效互动与数据可视化;网关层通过Nginx进行负载均衡及资源分发;应用层基于Spring Boot构建,集成了Spring MVC、任务调度、缓存管理和安全认证等功能,并利用WebSocket支持实时通信;数据层则依赖MySQL进行数据持久化,Redis作为缓存和消息队列,MyBatis用于数据库操作优化。整个框架通过一系列强大的工具如Git、Maven和JUnit等确保项目的高效开发与维护,旨在提供高性能、可扩展性强以及安全可靠的系统解决方案。

图1.2 技术框架

1.2 苍穹外卖开发环境

Day-01苍穹外卖项目开发环境部署涉及:YApi接口管理平台、VM虚拟机、Windows操作系统、Nginx反向代理服务器、Java编程语言、IDEA集成开发环境、Git项目版本管理、Maven库依赖管理、Swagger接口调试工具、MySQL数据库。

表1.1 苍穹外卖开发环境

*开发环境**描述**版本*
Apifox线上YApi接口文档管理Apifox - API 文档、调试、Mock、测试一体化协作平台。拥有接口文档管理、接口调试、Mock、自动化测试等功能,接口开发、测试、联调效率,提升 10 倍。最好用的接口文档管理工具,接口自动化测试工具。
VMware Workstation Pro虚拟机VM-17
Windows操作系统Windows 10
Nginx反向代理负载均衡(项目自带)Nginx-1.20.2
Java用于项目开发的编程语言JDK-18.1
IDEA项目集成开发IDEA-2024.3.5
Git项目版本管理Git-2.24.0
Maven项目库依赖管理apache-maven-3.6.3
Swagger项目接口调试(项目自带)
XAMPP数据库集成安装器xampp-7.3.11-0

1.3 苍穹外卖项目部署

苍穹外卖项目下载可以在黑马程序员小程序中查找下载,或者在GitHub中下载:https://github.com/shuhongfan/sky-take-out

1.3.1 反向代理Nginx配置

Nginx文件路径为:苍穹外卖\资料\day01\前端运行环境。复制Nginx文件粘贴到全英文路径中。在Nginx文件路径中CMD运行nginx.exe,提示缺失文件夹nginx-1.20.2/temp/client_body_temp

图1.3 Nginx缺失文件夹

补充文件夹/temp和/temp/client_body_temp后运行Nginx,以及使用浏览器访问用户端localhost:80。

图1.4 访问用户端

1.3.2 数据库文件导入

启动XAMPP,在XAMPP中启动Apache服务器和MySQL数据库。由于Apache服务器端口为80与Nginx端口冲突,故将虚拟机关机重启即可杀死Nginx进程。

图1.5 启动数据库

点击MySQL中的Admin配置按钮,添加一个外部IP访问账号。

图1.6 添加MySQL账号

使用数据库管理器连接数据库,并导入苍穹外卖项目的sql文件:苍穹外卖\资料\day01\数据库\sky.sql。

图1.7 导入sql文件

1.3.3 部署IDEA项目

将苍穹外卖\资料\day01\后端初始工程\sky-take-out的项目文件复制粘贴到全英文路径,使用IDEA打开项目文件夹,配置MAVEN。

图1.8 配置MAVEN

如果IDEA弹出插件安装,就安装该插件。

图1.9 配置项目插件

等待MEVEN安装好所有依赖库后,参考黑马程序员教学视频保存本地版本配置以及Gitee云端配置。

Day01-06-开发环境搭建_后端环境搭建_使用Git进行版本控制_哔哩哔哩_bilibili

图1.10 Git配置

1.3.4 前后端联调

在该小章中,运行Nginx、IDEA中使用MAVEN编译sky-take-out项目、在XAMPP中启动MySQL数据库。

在编译sky-take-out项目时需要先设置登陆数据库的配置文件sky-server/src/main/resources/application-dev.yml。

图1.11 数据库配置文件

接着用MAVEN编译项目sky-take-out项目,然后运行sky-server/src/main/java/com/sky/SkyApplication.java。

图1.12 运行项目

浏览器访问localhoust:80,输入管理员账号密码即可登陆(admin、123456)。

图1.13 前后端联调

1.3.5 反向代理Nginx流程

在前后端联调中,网页传输过程涉及浏览器、Nginx、服务器、数据库。即用户使用浏览器访问URL:http://localhost/api/employee/login、该URL实际访问为Nginx,Nginx解析用户输入的URL地址反向代理访问服务器URL:http://localhost:8080/admin/employee/login、服务器依据访问具体业务进行数据处理和查询数据库数据。

图1.14 访问流程

Nginx配置教程如教学视频,主要涉及Nginx解析浏览器到服务器URL、Nginx对服务器负载均衡配置。Nginx配置文件为nginx-1.20.2\conf\nginx.conf

Day01-10-开发环境搭建_后端环境搭建_前后端联调_Nginx反向代理和负载均衡配置_哔哩哔哩_bilibili

图1.15 解析URL

图1.16 负载均衡

1.3.6 标签(TODO、@Api)和接口调试

在IDEA中可设置TODO标签提示待完成的代码,在项目中需要完成使用MD5加密验证登陆密码的正确性,其目的是为了当数据库非法查看时保护用户的密码。

图1.17 MD5加密验证

同时在MySQL数据库中修改管理员密码为MD5加密后的密文。

图1.18 数据库密文修改

使用接口管理平台Apifox管理已经设计好的接口文档:苍穹外卖\资料\day01\项目接口。

图1.19 接口文档管理

苍穹外卖中已经设计好接口文档了,接下来依据接口文档完成相应的接口程序,以及调试接口。苍穹外卖项目已经整合了基于Swagger的Knife4j接口文档工具用于调试接口。

在sky-server/src/main/java/com/sky/config/WebMvcConfiguration.java文件中已经配置好Knife4j的docket对象只需添加一些日记输出语句即可。

图1.20 配置docket对象

额外的据我搜索的关于Knife4j资料,其运行逻辑与用户正常访问网络服务相类似,用户浏览器访问网络服务-服务器响应服务-服务器返回用户访问网页。其中涉及网络连接和服务资源,即要对Knife4j进行静态映射配置(网络连接)和接口文档配置(服务资源)。

图1.21 访问流程

访问调试接口文档后可看到接口文档的版本信息,以及待测试的类、方法、数据。由于类、方法、数据没有添加相应的标签(注解),所以在接口文档中显示的类、方法、数据为IDEA中的名字。添加标签(注解)分为:类标签(@Api、@ApiModle)、方法标签(@ApiOperation)、属性标签(@ApiModelProperty)。

图1.22 调试接口

1.4 本章小结

在本章中主要工作有:理解苍穹外卖项目目录结构以及开发需求、部署苍穹外卖项目、前后端联调、调试接口文档。本章涉及的技术框架可归纳为一般的应用所具备的功能如:网关分发、服务器相应请求、业务处理(用户认证、控制业务流程、访问实体)、接口调试。

图1.23 技术框架

### 苍穹外卖系统部署方法 #### 使用阿里云ECS与Docker进行部署 对于苍穹外卖系统的后端部署,推荐使用阿里云弹性计算服务 (ECS)[^1]。可以选择官方提供的免费试用版本来初步体验和测试应用的功能;不过需要注意的是,试用版可能无法满足某些特定需求如域名备案等正式运营的要求。 完成服务器选购之后,通过SSH客户端或者其他支持的方式建立远程连接至所购得的ECS实例上执行后续操作。为了简化管理流程并提高效率,在此之前应当先安装容器化平台——Docker。有关于如何具体设置这部分内容可以参考网络上的众多指南资源来进行学习了解。 #### 基于宝塔面板快速搭建运行环境 另一种更为简便的方法则是利用宝塔Linux面板辅助完成整个项目的上线工作。该方式不仅能够帮助用户轻松处理复杂的软件包依赖关系问题,还提供了直观易懂的操作界面用于管理和调整各项参数设定。特别是当涉及到不同模块之间的协同运作时(比如前后端分离架构),借助此类图形化工具往往能显著降低技术门槛以及减少可能出现的人为失误概率[^2]。 针对前端部分,则需要额外引入Web服务器组件Nginx负责静态页面分发任务,并确保其监听指定HTTP(S)请求路径以便正确响应来自公网用户的访问尝试。通常情况下可以从源码仓库获取最新的HTML/CSS/JavaScript构建产物文件夹作为入口点加载显示给最终消费者群体查看交互。 ```bash # 安装 Docker 的命令示例 sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io -y ``` ```bash # 启动 Nginx 并设置开机自启 sudo systemctl start nginx.service sudo systemctl enable nginx.service ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值