day01:项目概述,环境搭建
文章目录
- 软件开发整体介绍
- 软件开发流程
- 角色分工
- 软件环境
- 外卖平台项目介绍
- 项目介绍
- 定位
- 功能架构
- 产品原型
- 技术选型
- 开发环境搭建
- 整体结构:前后端分离开发
- 前后端混合开发缺点
- 前后端分离开发
- 前端环境搭建
- Nginx
- 后端环境搭建
- 熟悉项目结构
- 使用Git进行版本控制
- 数据库环境搭建
- 登录功能
- 分析代码特点
- Nginx反向代理和负载均衡
- 会话跟踪技术方案
- JWT介绍
- JWT生成测试
- JWT校验测试
- 应用jwt令牌登录和校验
- 密码加密
- 导入接口文档
- 前后端开发流程
- 操作步骤
- Swagger
- 介绍
- 使用方式
- 常用注解
软件开发整体介绍
软件开发流程
- 需求分析:需求规格说明书、产品原型
- 设计:UI设计、数据库设计、接口设计
- 编码:项目代码、单元测试
- 测试:测试用例、测试报告
- 上线运维:软件环境安装、配置
角色分工
- 项目经理:对整个项目负责,任务分配,把控进度
- 产品经理:进行需求调研,输出需求调研文档、产品原型等
- UI设计师:根据产品原型输出界面效果图
- 架构师:项目整体架构设计、技术选型等
- 开发工程师:代码实现
- 测试工程师:编写测试用例,输出测试报告
- 运维工程师:软件环境搭建、项目上线
软件环境
- 开发环境(development):开发人员在开发阶段使用的环境,一般外部用户无法访问
- 测试环境(testing):专门给测试人员使用的环境,用于测试项目,一般外部用户无法访问
- 生成环境(production):即线上环境,正式提供对外服务的环境
外卖平台项目介绍
项目介绍
定位
专门为餐饮企业(餐厅、饭店)定制的一款软件产品
管理端–外卖商家使用
用户端–点餐用户使用
功能架构
体现项目中的业务功能模块
产品原型
用于展示项目的业务功能,一般由产品经理进行设计
管理端
用户端
技术选型
展示项目中使用到的技术框架和中间件等
开发环境搭建
整体结构:前后端分离开发

前后端混合开发缺点
- 沟通成本高
- 分工不明确
- 不便管理
- 不便维护扩展
前后端分离开发
当前最为主流的开发模式:前后端开发 分开部署运行
特点:解耦,便于管理、维护和扩展
前端环境搭建
前端工程基于Nginx运行
Nginx
介绍:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
特点:占有内存少,并发能力强,在各大型互联网公司都有非常广泛的使用
官网:https://nginx.org/
启动Nginx:双击nginx.exe即可启动nginx服务,访问端口号为80
注意事项:
- Nginx默认占用80端口号,如果80端口号被占用,可以在nginx.conf中修改默认端口号(netstat -ano | findStr 80)
- 修改了nginx.conf配置文件,需要重启nginx服务器(关闭然后再开,可以通过kill nginx.bat结束nginx,然后再次双击nginx.exe)
后端环境搭建
后端工程基于maven进行项目构建,并且进行分模块开发
熟悉项目结构

- sky-common子模块存放的是一些公共类,可以供其他模块使用

- sky-pojo子模块中存放的是一些entity、dto、vo

pojo:plain old java object
- sky-server子模块中存放的是 配置文件、配置类、拦截器、controller、service、mapper、启动类等

使用Git进行版本控制
- 创建Git本地仓库
- 创建Git远程仓库
- 将本地文件推送到Git远程仓库
数据库环境搭建
通过数据库建表语句创建数据库表结构
登录功能
分析代码特点
后端的初始工程中已经实现了登录功能,直接进行前后端联调测试即可
- @Builder注解的作用
lombok提供的注解,给类提供了builder()链式构建对象方式
EmployeeVO.builder().id(employee.getId()).build();
- @Slf4j注解的作用
lombok提供的注解,用于输出日志,打印信息完整,包含时间、所在类完整名等
log.info(“输出info日志”);
log.error(“输出error错误日志”);
- 使用的是什么会话技术
session
Nginx反向代理和负载均衡

Nginx反向代理:就是将前端发送的动态请求由nginx转发到后端服务器
反向代理的好处:
- 提高访问速度
- 进行负载均衡
- 保证后端服务安全
所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器
nginx反向代理的配置方式
nginx负载均衡的配置方式
nginx负载均衡策略
默认是轮询方式;使用weight方式,需要在每个server 192.168.100.***:8080 加上weight = 数字;使用剩下4个策略,需要在server上面加载ip_hash;即可
会话跟踪技术方案

跨域:跨域区分三个维度:协议、IP/域名、端口
JWT介绍
全称:JSON Web Token
官网:https://jwt.io/
介绍:定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的
组成:
- 第一部分:Header(头),记录令牌类型、签名算法等
- 第二部分:Payload(有效载荷),携带一些自定义信息、默认信息等
- 第三部分:Signature(签名),放置Token被篡改,确保安全性。将header、payload,并加入指定密钥,通过指定签名算法计算而来

场景:登录验证
- 登录成功后,生成令牌,并返回给前端
- 后续每个请求,都要携带JWT令牌,系统在每次请求处理之前,先校验令牌,通过后,再处理

JWT生成测试

JWT校验测试

注意事项:
- jwt校验时使用的签名密钥,必须和生成jwt令牌时使用的密钥是配套的
- 如果jwt令牌解析校验时报错,则说明jwt令牌被篡改或失效了,令牌非法
应用jwt令牌登录和校验
生成jwt
校验jwt
密码加密
问题:员工表中的密码是明文存储,安全性太低
方法:使用MD5加密方式对明文密码加密
导入接口文档
前后端开发流程

操作步骤
使用YApi
Swagger
介绍
使用Swagger你只需要按照它的规范去定义接口及接口相关信息,就可以做到生成接口文档,以及在线接口调试页面
官网:https://swagger.io/
Knife4是为Java MVC框架集成Swagger生成Api文档的增强解决方案
使用方式
- 导入knife4的maven坐标
- 在配置类中加入knife4相关配置
- 设置静态资源映射,否则接口文档页面无法访问



接口文档访问路径为localhost:8080/doc.html
问题:通过Swagger就可以生成接口文档,那么就不需要YApi了?
- YApi是设计阶段使用的工具,管理和维护接口
- Swagger是在开发阶段使用的框架,帮助后端开发人员做后端的接口测试
常用注解
通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常见注解如下:
相关文章:
day01:项目概述,环境搭建
文章目录 软件开发整体介绍软件开发流程角色分工软件环境 外卖平台项目介绍项目介绍定位功能架构 产品原型技术选型 开发环境搭建整体结构:前后端分离开发前后端混合开发缺点前后端分离开发 前端环境搭建Nginx 后端环境搭建熟悉项目结构使用Git进行版本控制数据库环…...
Python爬虫与数据可视化:构建完整的数据采集与分析流程
Python爬虫技术概述 Python爬虫是一种自动化的数据采集工具,它可以模拟浏览器行为,访问网页并提取所需信息。Python爬虫的实现通常涉及以下几个步骤: 发送网页请求:使用requests库向目标网站发送HTTP请求。获取网页内容…...
Java---包装类与泛型
1.包装类 1.1 包装类 在Java中,由于基本数据类型不是继承Object类,为了在泛型代码中可以支持基本数据类型,Java给每个基本数据类型各自提供了一个包装类。 如下图 除了char和int基本数据类型的包装类型有点特别,其他的都是首字…...
如何优化 PostgreSQL 中对于复杂数学计算的查询?
文章目录 一、理解复杂数学计算的特点二、优化原则(一)索引优化(二)查询重写(三)数据库配置调整(四)使用数据库内置函数的优势 三、具体的优化方案和示例(一)…...
前端面试题27(在实际项目中,如何有效地利用Vue3的响应式系统提高性能?)
在实际项目中,有效利用Vue3的响应式系统提高性能主要涉及以下几个关键点: 1. 合理使用reactive和ref reactive:用于将复杂的数据结构(如对象或数组)转换成响应式版本。确保只将需要实时更新的数据结构声明为响应式&am…...
掌握Vue 3生命周期:从组合式API到高效代码实践
引言 在 Vue 3 中,生命周期的概念得到了进一步的优化和简化。Vue 3 引入了组合式 API(Composition API),这为开发者提供了更灵活的方式来组织和重用代码逻辑。与传统的选项式 API(Options API)相比&#x…...
使用cgroup对pgsql进行分库资源限制
系统:Centos7 pg版本:14.11 自建pgsql14中有很多个库,一个库对应一个租户,偶尔会出现单个租户执行慢sql影响全局的问题,目前官方也没有比较合适的处理方案或者插件 解决方案: 因为pgsql是多进程应用,所以正好可以使用linux自带的cgroup功能进行资源限制。定时将进程中…...
【网络安全】一文带你了解什么是【网络劫持】
网络劫持(Network Hijacking)是一种网络攻击,攻击者通过非法手段劫持网络通信,导致合法用户的数据流被拦截、篡改或重定向到攻击者控制的系统。这种攻击可以在各种网络层面上进行,包括域名系统(DNS…...
springcloud分布式架构网上商城 LW +PPT+源码+讲解
3系统分析 3.1可行性分析 在开发系统之前要进行系统可行性分析,目的是在用最简单的方法去解决最大的问题,程序一旦开发出来满足了用户的需要,所带来的利益也很多。下面我们将从技术、操作、经济等方面来选择这个系统最终是否开发。 3.1.1技术…...
【Linux】动态库的制作与使用
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
Vue框架引入
vue简介 1.1.vue是什么?Vue官网 英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/ vue是一套构建用户界面的渐进式javascript框架 构建用户界面:将我们手里拿到的数据通过某种办法变成用户可以看见的界面前端工程师的职责:就是在合适的时候发出合适的请求,然后…...
贝叶斯估计(1):期末大乱炖
写在前面! 1 先验分布和后验分布 三种信息:总体信息、样本信息、先验信息 总体信息:“总体是正态分布”;样本信息:总体抽取的样本提供的信息,是最新鲜的信息;先验信息:在抽样之前就…...
电脑找回彻底删除文件?四个实测效果的方法【一键找回】
电脑数据删除了还能恢复吗?可以的,只要我们及时撤销上一步删除操作,还是有几率找回彻底删除文件。 当我们的电脑文件被彻底删除后,尽管恢复的成功率可能受到多种因素的影响,但仍有几种方法可以尝试找回这些文件。本文整…...
java开发报错
查了一下啊。...
基于python 的动态虚拟主机
内容动态,内容通过程序的执行结果返回。 通过编写脚本,完成配置,实现访问页面返回Hello World。 实现步骤: 1、安装python模块 dnf install python3-mod_wsgi 2、编写脚本 在/var/www/cgi-bin/目录下编写脚本: vim…...
绝地求生PUBG没有开始游戏按钮的解决办法
绝地求生是一款特别热门的战术竞技型射击类游戏,游戏中玩家需要在游戏地图上收集各种资源,并在不断缩小的安全区域内持武器对抗其他玩家,让自己生存到最后。当游戏最后场上只剩下一支队伍的时候即可获得游戏胜利。然而一些玩家在游玩绝地求生…...
开始尝试从0写一个项目--前端(一)
基础项目构建 创建VUE初始工程 确保自己下载了node.js和npm node -v //查看node.js的版本 npm -v //查看npm的版本 npm i vue/cli -g //安装VUE CLI 创建 以管理员身份运行 输入:vue ui 就会进入 点击创建 自定义项目名字,选择npm管理 结…...
【Java探索之旅】多态:向上下转型、多态优缺点、构造函数陷阱
文章目录 📑前言一、向上转型和向下转型1.1 向上转型1.2 向下转型 二、多态的优缺点2.1 多态优点2.2 多态缺陷 三、避免避免构造方法中调用重写的方法四、好的习惯🌤️全篇总结 📑前言 在面向对象编程中,向上转型和向下转型是常用…...
Linux上web服务器搭建(Apache、Nginx)
第五章 web服务器 第一节 DNS:对域名进行解析,查询对应的地址 1.1 web服务器简介 www是world wide web的缩写,也就是全球信息广播的意思 1.2.网址及HTTP简介 web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端…...
Django QuerySet对象,exclude()方法
模型参考上一章内容: Django QuerySet对象,filter()方法-CSDN博客 exclude()方法,用于排除符合条件的数据。 1,添加视图函数 Test/app11/views.py from django.shortcuts import render from .models import Postdef index(re…...
Veo 2提示词效能跃迁实战(工业级Prompt链构建全图谱)
更多请点击: https://codechina.net 第一章:Veo 2提示词编写的核心范式演进 Veo 2作为新一代视频生成模型,其提示词(prompt)工程已从早期的“关键词堆叠”转向结构化、语义分层与意图对齐的复合范式。这一演进并非简…...
告别沉浸式白屏!UniApp中iOS/Android底部安全区与顶部状态栏颜色自定义全攻略
告别沉浸式白屏!UniApp中iOS/Android底部安全区与顶部状态栏颜色自定义全攻略当开发者尝试在UniApp中实现沉浸式设计时,往往会遇到一个令人头疼的问题——默认的白色安全区和状态栏导致界面元素(如电池图标、信号强度)几乎不可见。…...
录音会议纪要整理不同使用场景,实用口碑选择建议
针对不同场景的录音整理需求(短录音、中长录音、长内容深度整理),本文基于实际使用体验,分享不同场景下的工具选择建议与使用心得。一、场景一:短录音(15-60分钟,发音清晰)典型场景&…...
内存占用3KB!极致瘦身释放MCU无限可能
极致小体积,给工业领域带来了无限的可能:更低硬件成本,更小芯片体积,更低功耗,更高可靠性,让每一颗小MCU都拥有大系统的完整能力。 https://www.bilibili.com/video/BV1eZLi6PEjc/?spm_id_from333.1387.ho…...
广州因特智能:AI视觉软硬结合,打破半导体检测装备“卡脖子”困境
【导语:广州因特智能科技孵化于西安电子科技大学广州研究院,专注用AI视觉技术解决工业场景的“卡脖子”检测难题,为半导体、光通信、新能源三大领域提供高端检测装备。】校地合作孵化,构建完整能力体系广州因特智能科技由西安电子…...
在多轮对话应用中观察Taotoken计费对成本的影响
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在多轮对话应用中观察Taotoken计费对成本的影响 效果展示类,结合一个需要维护长上下文的多轮对话应用案例,…...
Windows Cleaner深度解析:5大核心模块彻底解决系统空间不足问题
Windows Cleaner深度解析:5大核心模块彻底解决系统空间不足问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款完全免费开源的…...
AI率总超标?2026年AI写作辅助网站排行榜权威发布,轻松定稿不是梦!
写论文效率低、熬夜赶稿、查重不过关?别慌!2026 年最新 AI 论文写作工具合集来了,覆盖选题、大纲、初稿、润色、降重、格式、文献引用全流程,帮你精准匹配最适合的学术助手,彻底告别论文内耗!🏆…...
Performance-Fish:让你的《环世界》后期游戏帧率提升400%的终极优化方案
Performance-Fish:让你的《环世界》后期游戏帧率提升400%的终极优化方案 【免费下载链接】Performance-Fish Performance Mod for RimWorld 项目地址: https://gitcode.com/gh_mirrors/pe/Performance-Fish 你是否曾在《环世界》游戏后期,面对庞大…...
氘可来昔替尼常见副作用为鼻咽炎头痛及腹泻,如何应对
任何口服药物的临床价值,都必须在疗效与安全性的天平上找到精准的平衡点。氘可来昔替尼以PASI 75应答率的全面胜出证明了自己在银屑病治疗中的卓越地位,而其不良反应谱同样经过了严苛的临床验证。鼻咽炎、头痛和腹泻构成了这款药物最需关注的三大安全信号…...
