苍穹外卖》电商实战项目(java)知识点整理
一、重要知识点精讲
1.1 nginx反向代理P11
1. nginx反向代理好处:
1. 提高访问速度(可以进行缓存,如果访问相同资源可以直接响应数据)
2. 可以进行负载均衡(如果没有nginx前端只能固定地访问后端某一台服务器,加入nginx则可以将请求分发给后端不同的服务器)
负载均衡:把大量的请求按照、我们指定的指定的方式均衡的分配给集群中的每台服务器。
3. 保证后端服务安全(前端不能直接请求到后端服务器,需要通过Nginx转发)
location /api/ 的意思是如果请求能匹配上/api/这个字符串。
proxy_pass 该指令的作用是设定转发的目的地,其后跟的是转发的目的地址。
3. nginx负载均衡的配置:
在webservers里面定义一组服务器,用于承接访问负载:
4. nginx负载均衡的策略:
服务器不一定需要平均承接请求,可以通过更改参数赋以不同的权重
技巧:
1. 按F12可以打开浏览器的调试工具
4. 备注写上TODO可以在IDEA下方的TODO列表看到待做的操作
重要知识点:
1.用Git进行版本控制 P7 **
2.JWT令牌 P10 *
3.nginx反向代理 P11 **
4.Swagger P15 *
5.ThreadLocal P20 **
6.分页查询 P22 *
7.AOP P32 *
8.上传文件 图片 P36 P37 *
9.批量删除 P43 *
二、搭建开发环境 P3~P14
2.1软件开发整体介绍P3
软件开发流程
1. 需求分析:需求规格说明书(word文档)、产品原型(静态网页展示功能图片)。
2. 设计:UI设计(用户界面,小到按钮,大到页面布局,人机交互)、数据库设计(表结构、字段、类型等)、接口设计。
3. 编码:项目代码、单元测试。
4. 测试:测试用例、测试报告。
5. 上线运维:软件环境安装、配置。
角色分工
2.2 苍穹外卖项目介绍P4
项目介绍
为餐饮企业(餐厅、饭店)定制的一款软件产品。
功能架构:体现项目中的业务功能模块。
产品原型(产品经理)
产品原型:用于展示项目的业务功能(一般用静态的HTML页面+适当的说明文字进行展示),一般由产品经理进行设计。
技术选型(架构师)
技术选型:展示项目中使用到的技术框架和中间件等。
2.3 前端环境搭建P5
先确保将nginx.exe放在无中文的目录下:
注意:这里配置的是nginx的监听端口,nginx在81号端口上监听网页端,最后是将数据传入8080端口的服务器端。
2.4 后端环境搭建P6
1. 熟悉项目框架+2.5+2.6
common存放的是公共类:constant常量类,context项目上下文,enumeration枚举类,exception异常类,json处理json转换的类,properties是Springboot中的一些配置属性类,会把配置文件中的配置项封装成对象,result后端的返回结果,utils工具类。
注意下面对象职责的说明:
Entity就是实体类,实体类一般与数据库表对应。(数据库字段一般是下划线命名,实体类属性一般是驼峰命名)
DTO数据传输对象,DTO一般是作为方法传入的参数在使用,不局限于前端给controller层传参,也可以是controller层给service层传参。
VO是视图对象,用于前端数据的展示,所以一般是controller层把VO传给前端,然后前端展示。
server子模块存放的是配置文件、配置类、拦截器、controller、service、mapper、启动类等。
2.5 使用Git进行版本控制P7
.gitignore中存放的是git不需要管理的文件:比如编译后生成的targit文件,以及测试类、测试包还有idea自带的一些文件。
先创建Git本地仓库
VCS - Create Git Repository创建远程仓库,选中根目录即可,若右上角出现标志说明成功:
打钩是提交按钮,点击后勾选所有文件,编写版本文字,点击Commit,这步是将项目提交到本地仓库:
PS:如果已有本地仓库,若想移除重新添加,下面是移除本地仓库的方法,首先在settings中移除本地仓库,然后关闭idea,把仓库地址下的.git、.idea、.gitignore文件删除,重新启动idea打开项目即可:
然后创建Git远程仓库
在gitee上创建远程仓库:
点击复制按钮,在IDEA中点击向上的按钮:
点击下面的链接,定义远程仓库,然后将刚刚复制的链接粘贴进来点击OK,即可将本地仓库与远程仓库关联:
最后将本地文件推送到Git远程仓库
然后直接点击Push即可,然后刷新一下gitee页面,会发现同步成功:
2.6 搭建数据库P8
一共11张表如下:
2.7 前后端联调P9
在右端Maven处选中compile进行编译,若显示BUILD SUCCESS则说明编译通过:
在sky-server目录下的SkyApplication类中启动项目: