前言大家好我是程序员无尽冬 欢迎大家来到我的专栏。因为苍穹外卖已经是一个比较久的项目了 所以那些资料可能也会有变化 并且有的地方用到的开发工具现在可能并不适用 所以现在对我们新写苍穹外卖的可能不太友好 所以我想去记录一下自己写苍穹外卖的过程给之后写外卖的人一个参考 同时也记录一下自己的进步 接下来就让我们一起走进苍穹外卖我会先讲解相关的知识然后再带你一起操作 所有的操作几乎都有实图演示项目概述1基础知识技术选型1 搭建开发环境 P3~P14前端环境搭建P5 操作环节百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固支持教育网加速支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1MNDzXyVlr3mtmLgBjcPJVwpwd6633这个是所有资料的获取方式 在百度网盘里面前端的文件地址1、黑马程序员Java项目《苍穹外卖》企业级开发实战\资料\资料\day01\前端运行环境先确保将nginx.exe放在无中文的目录下http://localhost 之后再在浏览器输入这个即可看到前端展示的页面如果成功看到苍穹外卖登录端即可完成前端环境搭建后端环境的搭建首先我们先看一下父工程和几个子模块操作环节打开这个资料即可接下来我们看一下sky-common这个子模块common存放的是公共类constant常量类context项目上下文enumeration枚举类exception异常类json处理json转换的类properties是Springboot中的一些配置属性类会把配置文件中的配置项封装成对象result后端的返回结果utils工具类。接下来我们看一下第二个子模块sky-pojoEntity就是实体类实体类一般与数据库表对应。数据库字段一般是下划线命名实体类属性一般是驼峰命名DTO数据传输对象DTO一般是作为方法传入的参数在使用不局限于前端给controller层传参也可以是controller层给service层传参。VO是视图对象用于前端数据的展示所以一般是controller层把VO传给前端然后前端展示。pojo则是我们最熟悉的java对象了接下来我们看一下sky-server这个子模块server子模块存放的是配置文件、配置类、拦截器、controller、service、mapper、启动类等。git控制版本 操作环节可以直接问ai 在终端实行命令后 提供远端仓库的url即可之后根据ai的操作在终端进行操作即可 我是把远端仓库放在了我的github上数据库环境搭建在资料中找到sql文件 然后在database中打开该sql文件即可前后端联调P9要先将连接数据库的密码改为自己的密码在右端Maven处选中compile进行编译若显示BUILD SUCCESS则说明编译通过在sky-server目录下的SkyApplication类中启动项目输入localhost:81可以打开登录页面遇到的问题nginx反向代理后端的地址如下应该是http://localhost:8080/admin/employee/login但是前端请求的地址和后端接口的地址不一致是如何请求成功的呢原理nginx反向代理将前端发送的请求由nginx转发到后端服务器。接下来看一下nginx反向代理的好处下图是nginx的配置文件它监听的是81端口服务器名是本地http://localhost:81。如果匹配到api字符串http://localhost:81/api就转发到proxy_pass对应的地址http://localhost:8080/admin。如果后面还有字符串就拼接到目标地址后面http://localhost:8080/admin/employee/login。负载均衡的策略增强密码强度目前登录存在的问题密码是明文存储如123456安全性太低。思路将密码采用MD5方式加密后进行存储提高安全性存储入数据库的密码是加密后的数据并且加密的过程是不可逆的无法通过加密结果算出明文。将下面字符串粘贴到数据库e10adc3949ba59abbe56e057f20f883e记得要CtrlS保存更改结果在service类中只需调用Spring提供的DigestUtils类中的md5DigestAsHex方法对密码进行加密转换提供给后面比对即可代码如下password DigestUtils.md5DigestAsHex(password.getBytes());可能遇到一个小问题 就是大家在增强密码强度性后想试试看 要记得先启动前端的nginx 再去启动后端的application 之后才可以在local host中实现登录导入接口文档这里我们用apifox创建项目后在项目设置-数据管理-导入数据中选择YApi然后选择需要导入的文件就行了更多功能YAPI 导入的接口仍然在资料day1 中SwaggerSwagger 是一个规范和完整的框架用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它的主要作用是接口的文档在线自动生成功能测试思考通过 Swagger 就可以生成接口文档那么我们就不需要 Yapi 了1、Yapi 是设计阶段使用的工具管理和维护接口2、Swagger 在开发阶段使用的框架帮助后端开发人员做后端的接口测试了解即可 我们不用自己去配置 初始代码已经配置好了 且现在已经有更好的工具代替启动我们的启动类再打开localhost:8080/doc.html即可看到Swagger的常用注解Api注解使用样例记得要加tagsApiModel注解使用样例ApiModelProperty注解使用样例ApiOperation注解使用样例这些注解可以影响在前端页面 使文档有更高的可读性 了解即可总结环节本期我们学习了项目环境的搭建 git版本和仓库的建立 nginx反向代理 swagger接口文档等相关知识我是程序员无尽冬 感谢你的观看 如果对你有帮助 请一键三连支持一下最后分享一首歌给大家 Tek It - Cafuné - 单曲 - 网易云音乐