1.项目的整体结构
序号 | 名称 | 说明 |
1 | sky-take-out | maven父工程,统一管理依赖版本,聚合其他子模块 |
2 | sky-common | 子模块,存放公共类,例如:工具类、常量类、异常类等 |
3 | sky-pojo | 子模块,存放实体类、VO、DTO等 |
4 | sky-server | 子模块,后端服务,存放配置文件、Controller、Service、Mapper等 |
2.nginx反向代理
就是将前端发送的动态请求由nginx转发到后端服务器上
nginx 反向代理的好处:
- 提高访问速度(当前端再一次动态请求时,由于在nginx上有缓存,所以提高速度)
- 进行负载均衡(负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器)
- 保证后端服务安全(由于前端不能直接请求到后端,所以前端先请求到nginx,再由nginx走内网转发到后端服务器)
nginx 负载均衡策略:
名称 | 说明 |
轮询 | 默认方式 |
weight | 权重方式,默认为1,权重越高,被分配的客户端请求就越多 |
ip_hash | 依据ip分配方式,这样每个访客可以固定访问一个后端服务 |
least_conn | 依据最少连接方式,把请求优先分配给连接数少的后端服务 |
url_hash | 依据url分配方式,这样相同的url会被分配到同一个后端服务 |
fair | 依据响应时间方式,响应时间短的服务将会被优先分配 |
3.MD5加密
![](https://img-blog.csdnimg.cn/direct/2ee5aec895c8412bb492f3c7da84daff.png)
4.Swagger
使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。由于过程比较复杂,所以选择采用Knife4j。
在此之前使用YApi导入项目接口。
Knife4j
Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。
使用方式:
![](https://img-blog.csdnimg.cn/direct/333567cb47cc42c5a024e39f4774826b.png)
![](https://img-blog.csdnimg.cn/direct/c210d5bffb3c4f9f8d116cf54ffefbbb.png)
5.常用注解
通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常用注解如下:
注解 | 说明 |
@Api | 用在类上,例如Controller,表示对类的说明 |
@ApiModel | 用在类上,例如entity、DTO、VO |
@ApiModelProperty | 用在属性上,描述属性信息 |
@ApiOperation | 用在方法上,例如Controller的方法,说明方法的用途、作用 |