总结
今天回来在高铁上构想了一下,感觉大二有很多的事情要做,这个暑假还有一个月不能浪费了,回来最重要的事情就是看病了,身体一定要调养好了,大二的规划,大二上继续做省大创,需要做的有软件开发和深度学习图像识别的内容,大二寒假要练车+准备蓝桥杯和天梯赛。省大创准备结题,需要打磨一篇中文核心论文、一篇专利、一篇软著等。大二下的暑假想去找个互联网企业实习,项目和技术栈一定要打磨的很好。
八月份做黑马的苍穹外卖项目
整个项目的功能图片,两端,一个是商家管理端,一个是用户下单的移动端页面,用微信小程序来做。
技术选型
主要的技术选型,后端代码基于springboot可以快速开发,使用maven进行模块管理,
.
用户层 需要用到一些前端的技术,构建移动端
网关层 使用nginx服务器,它的特点有负载均衡和反向代理
应用层 springboot快速构建项目,简化spring项目的配置开发
spring Task 为spring提供定时认服务,用于外卖订单
Httpclien 主要实现对http请求的发送
spring Cache 由spring提供的数据缓存框架
JTW:是对于应用程序上的用户进行身份验证的标记
阿里云oss 对象存储服务,在项目中主要存储文件,如图片等
swagger 可以帮助开发人员生成接口文档,并对接口进行测试
poi 封装了对excel表格的常用操作
websocket 一种网络通信协议,上来实现来单功能和催单功能的;
数据层
关系型数据库采用mysql来实现
非关系数据库,key-value的格式存储的Redis,访问速度快,用来做缓存的
mybaits 持久层的框架
pagehelper 分页插件
spring data redis 简化java代码操作Redis的api
常用的工具
git进行版本的控制,对代码进行管理
maven 构建工具
junit 单元测试工具
postman 接口测试工具
项目已经有了初始化的一些代码,今天的完成的是,看项目的代码,了解git的使用,了解nginx的两个作用反向代理和负载均衡,创建数据库,实现基本的登陆功能,会使用swagger开发工具
接口文档的导入
在yapi中导入接口文档,所有的开发都是按照接口文档来写的,前后端在开发之前就必须定制好接口文档,在发开的过程中可以修改接口文档。
swagger
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://
swagger.io/)。 它的主要作用是:
1. 使得前后端分离开发更加方便,有利于团队协作
2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担
3. 功能测试
Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在
项目中引入Springfox ,即可非常简单快捷的使用Swagger。
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名
kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!
目前,一般都使用knife4j框架。
使用流程
1 导入对应的maven坐标
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
2在项目中添加配置类
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("苍穹外卖项目接口文档")
.version("2.0")
.description("苍穹外卖项目接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
3 设置静态资源
/**
* 设置静态资源映射
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/ME
TA-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/
META-INF/resources/webjars/");
}
swagger常用的注解
注解 说明
@Api 用在类上,例如Controller,表示对类的说明
@ApiModel 用在类上,例如entity、DTO、VO
@ApiModelProperty 用在属性上,描述属性信息
@ApiOperation 用在方法上,例如Controller的方法,说明方法的用途、作
生成的swagger文档,实现后端功能的测试
yapi是设计阶段用的工具,swagger是用来测试接口的。
nginx
前端请求的地址和后端设置的地址不相同,通过了nginx的反向代理来实现的,将前端请求动态发送到后端。反向代理的好处,提高访问速度,nginx会对数据进行缓存。保证数据的安全性;
配置方式 server{
listen 80;
server_name localhost;
location /api/{
proxy_pass http://localhost:8080/admin/; #反向代理
}
}