目录

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 技术框架

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐