苍穹外卖项目解读(一) 完整代码本地部署运行

前言

HM新出springboot入门项目《苍穹外卖》,笔者打算写一个系列学习笔记,"苍穹外卖项目解读",内容主要从HM课程,自己实践,以及踩坑填坑出发,以技术,经验为主,记录学习,也希望能给在学想学的小伙伴一个参考。

注:本文章是直接拿到项目的最终代码,然后从代码出发,快速逆向学习技术经验! 可能需要一些前置知识
觉得文章有用可以关注点赞收藏期待更新^^,期待您的评论留言

完整代码本地部署运行

第一篇以完整代码本地部署运行开始

项目代码资源

HM资源很方便获得,请大家自行获取

项目准备

首先从资源中找到http服务器nginx,项目文件sky-take-out,数据库sky.sql 位置在/day01/自行寻找

nginx 放到没有中文字符的路径下如 : H:\skytakeout\nginx-1.20.2 注意非中文路径!!!
项目文件sky-take-out,放到自己存放代码的文件夹下如:H:\java_code\sky-take-out CV即可

数据库导入

使用数据库管理工具,笔者使用的sqlyog/navicate 本地localhost导入数据库,选择文件导入,选择准备的sql文件运行即可

项目导入IDEA

打开IDEA,file-open,选择准备的sky-take-out,ok,trust, 导入IDEA成功,但是我们要做依赖管理,使用的是maven

1、打开settings,搜索maven,override user settings file 选择自己本地setting,会自动获取本地仓库,点击apply、 ok
2、使本地仓库生效,下载没有的依赖,这一步会有很多人卡,这里会介绍一些我的经验

maven经验:

1、直接打开pom文件,maven刷新

2、打开maven管理,对整个项目先进行clean,再compile,maven会自动下载缺失依赖

3、重新建立settings.xml和新本地仓库,重新配置maven。再尝试1,2方法

nginx

非中文路径下,建议使用cmd执行,正常的nginx服务启动,start nginx.exe,笔者这里建议先不要启动nginx,后面还有一些运行配置,当然启动了也没关系^^

启动配置更改

要把整个项目服务启动起来,其实是需要我们的nginx 搭配 springboot启动即可,但是我们还需要配置我们本机

项目配置

**在项目的server包下找到yml文件,有两个,先说dev,更改DataSource相关配置为本机配置,其他服务的后续用到再配也可以,不影响项目初次启动。另一个yml文件中的端口根据自己电脑端口占用情况更改,笔者这里直接介绍更改端口的方法 **

笔者的8080端口被瑞吉外卖占用了,所以笔者使用8088,更改端口号要着重注意后面nginx配置

nginx配置

nginx文件下conf/nginx.conf文件就是配置文件。nginx作为前后端连通,实现负载均衡的http服务器,笔者这里简单介绍配置文件。
服务集群配置,这里只有一台8088,权重在负载均衡时会按权重策略分发访问

端口监听,http服务器,监听localhost:80,会映射到访问界面


反向代理,可使用我们的集群服务器配置。可简单理解为当我们在浏览器中有了http://localhost:80/api/xxx的访问,会被nginx反向代理为http://localhost:8088/admin/xxx 看后端controller代码也会发现,刚好应对我们的mapping,xxx就对应了具体服务

windows下nginx大坑:首先笔者建议了使用路径下cmd的方式启动服务,由于笔者更改了配置文件,重新加载启动(命令nginx -s reload)nginx后一直报错,采用双击启动,发现error.log日志也是同样的报错,报错如下:
unknown directive "锘? in H:\skytakeout\nginx-1.20.2/conf/nginx.conf:3 没有中文却出现了"锘?"经过简单的斗争(痛苦挣扎)发现了是配置文件编码格式,windows下图方便使用记事本打开修改的举手^^
解决办法,使用专业文本编辑器,笔者使用sublime text、note++,保存修改后的配置文件为utf-8 不要BOM!!!! sublime text 操作截图如下

修改数据库数据

这里就不卖关子了,如果前面都没问题的话,项目能正常进入,localhost:80,进入登录界面,但是回密码错误,看了原课程发现是密码做了md5加密,但数据库没修改。这里提供admin的密码(123456)e10adc3949ba59abbe56e057f20f883e

这里是把加密的密码填入到数据库中employee表password字段,前端登录还是使用的123456

成功运行

运行参考截图


这里测试nginx配置编码时 修改了我的监听端口为81,没改的还是80哈

登录成功后前端后端都有一个错误,检查应该是主动推送服务,以及redis配置。不影响菜单栏的使用

这里不一一展示所有界面了,主要进入菜品管理界面,操作里面的小功能,笔者发现操作数据库能成功,但是没有主动刷新界面,后台还是同时报了redis连接异常。

停售第一个菜品,数据库语句没问题,刷新界面后状态更改

此外应该还是有一个定时任务在运行,"定时处理超时订单",后续再解读吧

觉得文章有用可以关注点赞收藏期待更新^^期待您的评论留言

相关推荐
四谎真好看6 小时前
Java 黑马程序员学习笔记(进阶篇18)
java·笔记·学习·学习笔记
桦说编程6 小时前
深入解析CompletableFuture源码实现(2)———双源输入
java·后端·源码
java_t_t6 小时前
ZIP工具类
java·zip
lang201509286 小时前
Spring Boot优雅关闭全解析
java·spring boot·后端
pengzhuofan7 小时前
第10章 Maven
java·maven
百锦再8 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
刘一说8 小时前
Spring Boot 启动慢?启动过程深度解析与优化策略
java·spring boot·后端
壹佰大多8 小时前
【spring如何扫描一个路径下被注解修饰的类】
java·后端·spring
百锦再8 小时前
对前后端分离与前后端不分离(通常指服务端渲染)的架构进行全方位的对比分析
java·开发语言·python·架构·eclipse·php·maven
DokiDoki之父8 小时前
Spring—注解开发
java·后端·spring