一、前端环境搭建
①整体结构
②前端工程基于nginx运行
启动nginx:双击 nginx.exe 即可启动 nginx 服务,访问端口号为 80
进入浏览器地址输入locallhost回车
二、后端环境搭建
后端初始工程基于maven进行项目构建,并且进行分模块开发
(1) idea打开初始工程,了解项目的整体结构
1 sky-take-out maven父工程,统一管理依赖版本,聚合其他子模块 2 sky-common 子模块,存放公共类,例如:工具类、常量类、异常类等 3 sky-pojo 子模块,存放实体类、VO、DTO等 4 sky-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版本对应的进行下载