苍穹外卖环境搭建

一、前端环境搭建

①整体结构

 ②前端工程基于nginx运行

启动nginx:双击 nginx.exe 即可启动 nginx 服务,访问端口号为 80

进入浏览器地址输入locallhost回车

二、后端环境搭建 

后端初始工程基于maven进行项目构建,并且进行分模块开发

(1) idea打开初始工程,了解项目的整体结构

1sky-take-outmaven父工程,统一管理依赖版本,聚合其他子模块
2sky-common子模块,存放公共类,例如:工具类、常量类、异常类等
3sky-pojo子模块,存放实体类、VO、DTO等
4sky-server子模块,后端服务,存放配置文件、Controller、Service、Mapper等

 

(2)使用Git版本进行版本控制

gitgnore文件里面的不进行推送

 

 ●创建Git本地仓库

当Idea中出现下面的效果,说明本地仓库创建成功。

 

●创建Git远程仓库

访问https://gitee.com/,新建仓库

 

 (3)数据库环境搭建

(4)前后端联调

●实现思路

 

记得修改数据库密码

注:可以通过断点调试跟踪后端程序的执行过程

(5)nginx反向代理和负载均衡

前端发送的请求,是如何请求到后端服务的?  

 前端请求地址:http://localhost/api/employee/login

  后端接口地址:http://localhost:8080/admin/employee/login

 很明显,两个地址不一致,那是如何请求到后端服务的呢?

 ①nginx 反向代理:

就是将前端发送的动态请求由 nginx 转发到后端服务器

好处:

  • 提高访问速度

    因为nginx本身可以进行缓存,如果访问的同一接口,并且做了数据缓存,nginx就直接可把数据返回,不需要真正地访问服务端,从而提高访问速度。

  • 进行负载均衡

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

  • 保证后端服务安全

    因为一般后台服务地址不会暴露,所以使用浏览器不能直接访问,可以把nginx作为请求访问的入口,请求到达nginx后转发到具体的服务中,从而保证后端服务的安全。

 nginx 反向代理的配置方式:

server{listen 80;server_name localhost;location /api/{proxy_pass http://localhost:8080/admin/; #反向代理}
}

proxy_pass:该指令是用来设置代理服务器的地址,可以是主机名称,IP地址加端口号等形式。如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/../..这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://localhost:8080/admin/上来。

 接下来,进到nginx-1.20.2\conf,打开nginx配置

​
# 反向代理,处理管理端发送的请求
location /api/ {proxy_pass   http://localhost:8080/admin/;#proxy_pass   http://webservers/admin/;
}​

当在访问http://localhost/api/employee/login,nginx接收到请求后转到http://localhost:8080/admin/,故最终的请求地址为http://localhost:8080/admin/employee/login,和后台服务的访问地址一致。

nginx 负载均衡

 当如果服务以集群的方式进行部署时,那nginx在转发请求到服务器时就需要做相应的负载均衡。其实,负载均衡从本质上来说也是基于反向代理来实现的,最终都是转发请求。

(6)完善登录功能

问题:员工表中的密码是明文存储,安全性太低。

密文:e10adc3949ba59abbe56e057f20f883e

解决步骤:

①修改数据库中明文密码,改为MD5加密后的密文

②修改Java代码,前端提交的密码进行MD5加密后再跟数据库中密码比对

 password = DigestUtils.md5DigestAsHex(password.getBytes());

 重新启动SkyApplication

登录成功

三、问题集合及解决办法

①Error executing Maven.2 problems were encountered while building the effective settings

 

修改了settings.xml文件有mirrors标签没有闭合之后成功解决

② SkyApplication运行不了

解决办法:打开的路径错了 

log爆红

使用了@Slf4j注解,用于自动生成一个log对象,相当于private final Logger log = LoggerFactory.getLogger(当前类名.class);这个注解需要安装Lombok插件才能使用。

IDEA file—settings–plugins,搜索lombok–install。安装完后自动重启IDEA后就不会报错了。

下载超时通过问题④解决

④was not installed: Cannot download......Read timed out【lombok下载超时】

 解决办法:可以到idea插件下载网站去下载lombok

网址: Lombok - IntelliJ IDEs Plugin | Marketplace

选择和idea版本对应的进行下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress——Argon主题美化

文章目录 Argon主题美化插件类类别标签页面更新管理器文章头图URL查询监视器WordPress提供Markdown语法评论区头像设置发信设置隐藏登陆备份设置缓存插件 主题文件编辑器页脚显示在线人数备案信息(包含备案信息网站运行时间)banner下方小箭头滚动效果站点功能概览下方Links功能…

分布式并行策略

1.数据并行(DP) 将小批量分为n块,每个GPU拿到完整参数计算一块数据的梯度。(通常性能会更好) 假如一个批量有128个样本,然后有2个GPU,那么每个GPU可以拿到64个样本。(每个GPU计算完…

【python】OpenCV—Segmentation

文章目录 cv2.kmeans牛刀小试 cv2.kmeans cv2.kmeans 是 OpenCV 库中用于执行 K-Means 聚类算法的函数。以下是根据参考文章整理的 cv2.kmeans 函数的中文文档: 一、函数功能 cv2.kmeans 用于执行 K-Means 聚类算法,将一组数据点划分到 K 个簇中&…

Altair 助力优化摩托车空气动力学性能,实现最佳的整流罩设计

案例简介 整流罩是绝大多数摩托车的重要组成部分,旨在提高车辆的空气动力学性能和稳定性。Altair 与 KTM 公司员工组成的项目团队,针对摩托车整流罩空气动力学方面的学生项目,展开了密切合作。 项目任务主要是对摩托车整流罩设计进行比较&…

山体滑坡监测利器:传感器与智能监测平台的应用

山体滑坡,这一地质灾害的代名词,指的是山坡上的土体或岩体在重力作用下,因自然或人为因素而向下滑动的现象。滑坡具有突发性、隐蔽性、危害性和破坏性等特征,因此,对于山体滑坡的监测工作显得尤为重要。本文将探讨山体…

豆包高质量声音有望复现-Seed-TTS

我们介绍了 Seed-TTS,这是一个大规模自回归文本转语音 (TTS) 模型系列,能够生成与人类语音几乎没有区别的语音。Seed-TTS 作为语音生成的基础模型,在语音上下文学习方面表现出色,在说话人的相似性和自然性方…

Vitis HLS 学习笔记--Stream Chain Matrix Multiplication

目录 1. 简介 2. 示例解析 2.1 示例功能说明 2.2 函数说明 2.2.1 mmult 函数 2.2.2 mm2s 函数 2.2.3 s2mm 函数 2.2.4 总示意图 3. 总结 1. 简介 这是一个包含使用数据流的级联矩阵乘法的内核。该内核启用了 ap_ctrl_chain,以展示如何重叠多个内核调用队…

2024年最好用的精简系统推荐!旧电脑福音!

精简版电脑系统经过精心优化,去除了冗余功能,保留了核心功能,让用户的操作更加便捷高效,同时也具备强大的兼容性和稳定性,整体操作体验感很好。但是,许多新手用户不知道在哪里才可以找到好用的精简版系统&a…

Mojo崛起:AI-first 的编程语言能否成为新流行?

眨眼之间,你可能会错过又一种编程语言的发明。 有个笑话说,程序员花费20%的时间编写代码,80%的时间决定使用什么语言。 事实上,编程语言如此之多,以至于我们不确定实际有多少种。据估计,至少有700种编程语…

【Android 11】AOSP Settings添加屏幕旋转按钮

前言 这里是客户要求添加按钮以实现屏幕旋转。屏幕旋转使用adb的命令很容易实现: #屏幕翻转 adb shell settings put system user_rotation 1 #屏幕正常模式 adb shell settings put system user_rotation 0这里的值可以是0,1,2&#xff0c…

中国天辰×蓝卓丨共创行业级工业操作系统,加速培育新质生产力!

6月17日,中国天辰工程有限公司(以下简称“中国天辰”)党委委员、总经理梁军湘一行莅临蓝卓,双方就工业互联网平台合作进行座谈交流。蓝卓总经理谭彰、副总经理蓝照斌、总经理助理俞益标,以及中控技术副总裁吴才宝、大客…

Altair 人工智能技术助力MABE预测消费者行为,实现设备性能优化

主要看点 行业: 家电行业 挑战: 企业面临的挑战是如何利用已收集的大量数据,深入了解消费者在产品使用过程中对某些保鲜程序的影响。 Altair 解决方案: Altair采用了Altair RapidMiner人工智能平台来解决问题,特别是…

docker安装消息队列mq中的rabbit服务

在现代化的分布式系统中,消息队列(Message Queue, MQ)已经成为了一种不可或缺的组件。RabbitMQ作为一款高性能、开源的消息队列软件,因其高可用性、可扩展性和易用性而广受欢迎。本文将详细介绍如何在Docker环境中安装RabbitMQ服务…

八股系列 Flink

Flink 和 SparkStreaming的区别 设计理念方面 SparkStreaming:使用微批次来模拟流计算,数据已时间为单位分为一个个批次,通过RDD进行分布式计算 Flink:基于事件驱动,是面向流的处理框架,是真正的流式计算…

访问学者谈CSC青年骨干教师项目出国经历及感受

CSC青年骨干教师出国研修项目实施已近20年,越来越多的青年教师成为该项目的受益者。知识人网小编推荐该项目资助老师谈谈在加拿大卡尔加里大学访学一年的经历及感受。 国家留学基金委(以下简称CSC)高等学校青年骨干教师出国研修项目&#xff…

个股期权有哪些股票?金融新手必须知道!

今天带你了解个股期权有哪些股票?在中国的股票市场中,个股期权是一种衍生品,允许投资者购买或卖出特定股票的期权合约。 个股期权有哪些股票? 个股期权是指在特定时间内,以特定价格买入或卖出特定数量的某只个股的权利…

lombok.jar包,解决 java: 找不到符号 符号: 类 __

打开设置在这里添加这样一小句话. -Djps.track.ap.dependenciesfalse

赛氪网荣膺“创新型中小企业”称号,科技创新再显卓越实力

近日,北京市经济和信息化局揭晓了2024年度3月份北京市创新型中小企业的光荣名单,其中北京环球赛乐科技有限公司(简称赛氪网)脱颖而出,再度展现其在创新领域的卓越实力! 作为早已跻身“高企之光”行列的佼佼…

COUNTIF函数除计数,还可排序哦

COUNTIF函数除统计个数外,还可以排序哦! 近期工作中遇到一个场景“对不同类型的人员按办理量进行排序”,前期只是对同一种类型进行排序,经过查阅资料,可以用COUNTIF函数解决问题,今天就把COUNTIF函数的用法…

EarMaster pro 7 For Mac软件下载-EarMaster Pro(音乐赏析进阶专业版)V6.1下载附加详细安装步骤

EarMaster pro 7 For Mac最新版是一款相当专业的听力训练和音乐理论练习软件,这个EarMaster pro 7 For Mac版带来了全的操作界面,并且更新了课程信息,内置了2000多种课程供用户选择,可以用于听耳训练、视唱和节奏训练等操作。 安 …