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