news 2026/1/29 4:27:09

苍穹外卖日记 | Day1 苍穹外卖概述、开发环境搭建、接口文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
苍穹外卖日记 | Day1 苍穹外卖概述、开发环境搭建、接口文档

一、项目介绍

苍穹外卖可以说是家喻户晓的存在了,在后端形势尚不严峻的几年前,不少人靠着苍穹外卖和黑马点评两个项目拿到了心仪的offer。可惜在现当下它却成了烂大街的存在,如果你学历不是强92,别提找工作,想靠着他们去找一份像样的实习都困难。但这却不能成为我们不写苍穹外卖的理由,即便到目前为止,网上各种免费付费项目层出不穷,Github的,哔哩哔哩大学的,各种知识星球的,苍穹外卖却依旧抗打,算得上是每位开发者入门后端的最好项目之一。

1.项目定位:专门为餐饮企业定制的一款软件产品

诞生于真正的需求之中,许多餐饮店在十几年前没有APP进行订单管理以及供用户进行点单,一般只能通过电话进行点餐,但无疑这种方式效率极低而且很容易漏单。

2.功能架构:体现项目中的业务功能板块

主要分为管理端和用户端,管理端在页面当中,用户端则设置在微信小程序里面。

p1.管理端和用户端的功能

p2.管理端的页面效果

p3.用户端的页面效果

3.技术选型:展示项目中使用到的技术框架和中间件等

以下为苍穹外卖使用到的相关技术栈,在项目完结时要求达到对某个技术栈实现项目中哪个功能,有什么其他技术可以实现相同功能,为什么选这个技术不选那个技术侃侃而谈。

二、开发环境搭建

1.前端环境搭建

前端工程基于nginx运行,相当于把前端工程打包到图中的nginx文件夹里面,然后把Nginx目录放在没有中文的目录中,否则不能正常运行。

这个操作就是把前端项目部署到本地的过程

点击nginx.exe应用程序即可运行,默认占用80端口,打开任务管理器查看是否有nginx的进程,如果没有那么大概率就是80端口被占用了。

nginx无法启用的解决方案

1.先查看80端口是否被占用:在cmd命令行输入以下代码,像我当时就发现自己的80端口被一个PID为4的东西占用了。

netstat -ano | findstr :80 // 显示所有占用80端口的进程

2.任务管理器中锁定占用80端口的PID:尝试看看能不能把这个进程取消了,但也有可能取消不了,像我当时电脑里面占用80端口的就是System,这个东西没法停用,跟我一样的情况就可以进行下一步。

3.查看http服务状态快照:在cmd命令行输入以下命令,我当时输入之后就发现视图里面的请求队列进程ID(PID)等于4740,我就又去任务管理器里面找PID为4740的进程,结果找到了一个叫做svchost.eve的东西,上网一查发现这东西根本惹不起啊,不过我还是不信邪尝试结束它的进程,结果我电脑立马黑屏,过了一会重启了,发现这个80端口依旧被占用了。

netsh http show servicestate // 查看http服务状态快照

4.关闭IIS服务:后面我就上网查找关闭或修改svchost.exe端口的办法,发现一种说法是关闭IIS服务。以管理员身份cmd打开命令行,输入以下代码

iisreset /stop // 关闭IIS服务

IIS服务关闭后80端口就不再被占用了就可以正常运行nginx了。注意这只是我的情况,如果大家也是80端口被svchost.exe进程占用的问题并且关闭了IIS服务问题仍未得到解决可以移步博客:Click Here。

:遇到nginx默认80端口被占用,也可以在nginx目录下的conf目录的配置文件nginx.conf中手动配置别的端口号。但是由于本项目中后续的大部分技术的使用都必须用到80端口号,所以建议大家还是一开始就把80端口号被占用的问题解决掉。

手动配置端口的操作:配置文件把listen后面的数字改为90或者其他未被占用的端口号即可。

任务管理器出现nginx进程说明前端项目部署成功

2.后端环境搭建

(1)导入后端工程

找到自己的工作空间把后端项目骨架粘贴过来,在IDEA中打开即可。

基础配置

1.文件编码都配置为UTF-8

2.配置maven仓库

3.SDK都配置为11

(2)使用Git进行版本控制

1.创建Git本地仓库

方式一:使用IDEA自带的版本控制按钮创建本地Git仓库,注意选中整个后端项目文件夹

方式二:进入终端,在后端项目的大目录下输入git init

在.gitignore中配置application-dev.yml文件,表示这个文件不交给Git仓库管理,因为该文件是配置本机开发环境的数据库密码啥的,不能提交到远程仓库泄露。

然后把剩下的东西都提交到版本库中,作为第一次提交初始化。

2.创建Git远程仓库

在Github,Gitee这些远程仓库平台创建远程仓库,这里我以Gitee举例。输入仓库名称然后直接点击创建,不要点别的任何东西,然后复制远程仓库地址。

3.将本地文件推送到Git远程仓库

方式一:使用IDEA自带的可视化推送按钮,点击后会自动提示你没有连接远程仓库,要求你定义远程,输入对应的URL并按照相应提示即可完成推送。

方式二:进入终端输入以下命令

git remote add origin <远程仓库的URL> // 添加远程仓库

git push -u origin "master" // 将提交推送到远程仓库的master分支

提交时如果报错Failed to connect to gitee.com port 443 via 127.0.0.1 after 2045 ms: Could not connect to server,这说明你的Git配置了本地代理,但是代理服务未运行或配置错误。

在命令行中依次输入以下命令即可

git config --global --unset http.proxy git config --global --unset https.proxy

成功推送:

:-u参数表示同时将本地分支与远程分支建立联系,到时候pull和push的git命令不再需要写origin <目标分支>,区别于普通的git push。具体参考博客:Click Here

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/28 2:45:26

Keil5安装失败应对策略:实战案例分析

Keil5安装失败&#xff1f;别慌&#xff01;实战排错全解析 在嵌入式开发的世界里&#xff0c;Keil MDK几乎是每个接触ARM Cortex-M系列单片机的工程师绕不开的工具。尤其是 Keil5&#xff08;即MDK-ARM 5.x&#xff09; &#xff0c;凭借其稳定高效的ARM Compiler、简洁流畅…

作者头像 李华
网站建设 2026/1/27 0:50:42

PDF-Extract-Kit教程:如何构建自定义PDF解析流程

PDF-Extract-Kit教程&#xff1a;如何构建自定义PDF解析流程 1. 引言 1.1 背景与需求 在科研、教育和企业文档处理中&#xff0c;PDF 是最常用的文件格式之一。然而&#xff0c;PDF 的非结构化特性使得从中提取文本、公式、表格等关键信息变得极具挑战。传统方法如简单 OCR …

作者头像 李华
网站建设 2026/1/28 23:54:28

PDF-Extract-Kit教程:自定义模型训练与微调方法

PDF-Extract-Kit教程&#xff1a;自定义模型训练与微调方法 1. 引言 1.1 技术背景与应用场景 在数字化文档处理领域&#xff0c;PDF 文件因其格式稳定、跨平台兼容性强而被广泛使用。然而&#xff0c;PDF 中的信息提取——尤其是结构化内容&#xff08;如表格、公式、图文布…

作者头像 李华
网站建设 2026/1/28 22:11:45

PDF-Extract-Kit性能对比:CPU与GPU处理效率测评

PDF-Extract-Kit性能对比&#xff1a;CPU与GPU处理效率测评 1. 引言 1.1 技术背景与选型需求 在当前AI驱动的文档智能处理领域&#xff0c;PDF内容提取已成为科研、教育、出版等行业数字化转型的核心环节。传统OCR工具虽能完成基础文字识别&#xff0c;但在面对复杂版式、数…

作者头像 李华
网站建设 2026/1/28 23:00:08

PDF-Extract-Kit部署实战:边缘计算环境PDF处理

PDF-Extract-Kit部署实战&#xff1a;边缘计算环境PDF处理 1. 引言 1.1 边缘计算场景下的文档智能需求 随着物联网和边缘计算的快速发展&#xff0c;越来越多的设备需要在本地完成复杂的数据处理任务。在教育、科研、金融等领域&#xff0c;PDF文档作为信息传递的主要载体&a…

作者头像 李华