苍穹外卖》电商实战项目(java)知识点整理(上)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 苍穹外卖》电商实战项目(java)知识点整理(上)

苍穹外卖》电商实战项目(java)知识点整理

一、重要知识点精讲

1.1 nginx反向代理P11

1. nginx反向代理好处:

 

1. 提高访问速度(可以进行缓存,如果访问相同资源可以直接响应数据)

 

2. 可以进行负载均衡(如果没有nginx前端只能固定地访问后端某一台服务器,加入nginx则可以将请求分发给后端不同的服务器)

 

负载均衡:把大量的请求按照、我们指定的指定的方式均衡的分配给集群中的每台服务器。

 

3. 保证后端服务安全(前端不能直接请求到后端服务器,需要通过Nginx转发)

image.png

location /api/ 的意思是如果请求能匹配上/api/这个字符串。

 

proxy_pass 该指令的作用是设定转发的目的地,其后跟的是转发的目的地址。

 

3. nginx负载均衡的配置:

 

在webservers里面定义一组服务器,用于承接访问负载:

image.png

4. nginx负载均衡的策略:

 

服务器不一定需要平均承接请求,可以通过更改参数赋以不同的权重 image.png

技巧:

 

1. 按F12可以打开浏览器的调试工具  

 

4. 备注写上TODO可以在IDEA下方的TODO列表看到待做的操作

image.png

重要知识点:

 

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. 上线运维:软件环境安装、配置。

 

角色分工

image.png

2.2 苍穹外卖项目介绍P4

项目介绍

 

为餐饮企业(餐厅、饭店)定制的一款软件产品。

 

功能架构:体现项目中的业务功能模块。

image.png

产品原型(产品经理)

 

产品原型:用于展示项目的业务功能(一般用静态的HTML页面+适当的说明文字进行展示),一般由产品经理进行设计。

 

技术选型(架构师)

 

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

image.png

2.3 前端环境搭建P5

先确保将nginx.exe放在无中文的目录下:

image.png

注意:这里配置的是nginx的监听端口,nginx在81号端口上监听网页端,最后是将数据传入8080端口的服务器端。

image.png

2.4 后端环境搭建P6

1. 熟悉项目框架+2.5+2.6

image.png

common存放的是公共类:constant常量类,context项目上下文,enumeration枚举类,exception异常类,json处理json转换的类,properties是Springboot中的一些配置属性类,会把配置文件中的配置项封装成对象,result后端的返回结果,utils工具类。

 

注意下面对象职责的说明:

image.png

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页面,会发现同步成功:

image.png

2.6 搭建数据库P8

一共11张表如下:

image.png

2.7 前后端联调P9

image.png

在右端Maven处选中compile进行编译,若显示BUILD SUCCESS则说明编译通过:

image.png

在sky-server目录下的SkyApplication类中启动项目:

image.png

 

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
8天前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
152 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
10天前
|
前端开发 JavaScript Java
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
57 13
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
|
11天前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
57 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
9天前
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
47 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
13天前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
57 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
8天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
40 7
|
27天前
|
存储 缓存 Java
Java中的分布式缓存与Memcached集成实战
通过在Java项目中集成Memcached,可以显著提升系统的性能和响应速度。合理的缓存策略、分布式架构设计和异常处理机制是实现高效缓存的关键。希望本文提供的实战示例和优化建议能够帮助开发者更好地应用Memcached,实现高性能的分布式缓存解决方案。
39 9
|
27天前
|
前端开发 Java 程序员
菜鸟之路day02-04拼图小游戏开发一一JAVA基础综合项目
本项目基于黑马程序员教程,涵盖面向对象进阶、继承、多态等知识,历时约24小时完成。项目去除了登录和注册模块,专注于单机游戏体验。使用Git进行版本管理,代码托管于Gitee。项目包含窗体搭建、事件监听、图片加载与打乱、交互逻辑实现、菜单功能及美化界面等内容。通过此项目,巩固了Java基础并提升了实际开发能力。 仓库地址:[https://gitee.com/zhang-tenglan/puzzlegame.git](https://gitee.com/zhang-tenglan/puzzlegame.git)
42 6
|
2月前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
679 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
30天前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
62 6