发表于: 2021-12-03 21:52:09
0 832
任务三总结:
学会看原型图,设计表,设置各个表的字段,主键,索引,备注
学会写接口文档
用户登陆
http请求方式:post
接口调用:http://localhost/artist/login
字段 | 说明 | 类型 |
name | 用户名 | String |
password | 密码 | String |
用户登陆返回Json数据包:{
"message": "登陆成功",
"resulf": {
"name": "用户名",
"passpword": "密码"
},
"code": 1}用户或者密码为空返回Json数据{
"message": "用户或者密码为空",
"resulf": {
"name": "用户名",
"passpword": "密码"
},
"code":0
}用户或者密码错误返回Json数据{
"message": "用户或者密码错误",
"resulf": {
"name": "用户名",
"passpword": "密码"
},
"code": 0
}
参数 | 说明 |
message | 提示消息 |
resulf | 返回登陆的用户名和密码 |
code | 状态0:登陆失败 1:登陆成功 |
学会使用swagger2 生成接口文档
使用swagger2的好处:
它最大的优点是能实时同步api与文档,减轻开发人员的工作量与保证接口文档与后端代码的一致性,另外可以不需第三方工具在线测试。
配置swagger2
@Configuration
@EnableSwagger2
public class configSwagger2 {
private ApiInfo apiInfo(){
Contact contact=new Contact("飞天虎","http://gitee.com/feitianhuhu","253865797@qq.com");
return new ApiInfo("Artist ApI",
"梦在远方",
"1.0",
"http://locahost:8081/artistdemo",
contact,
"Apache 2.0",
"",
new ArrayList());
}
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("邓科荣")
.select()
.apis(RequestHandlerSelectors.basePackage("com.artist.controller"))
.paths(PathSelectors.any())
.build();
}
@Bean
public RequestMappingInfoHandlerMapping requestMappingInfoHandlerMapping(){
return new RequestMappingHandlerMapping();
}
}
使用swagger增强工具 knife4j
熟练掌握restful风格接口打写法,理解restful风格的好处
完成项目的时候需要用到数据中的大量字段,很多可能会自己写错某些字段和属性,简化工作量使用mybatis逆向工程生成实体类,学会使用mybatis-gennerator,在这个过程中了解到通用Mapper 和 MybBatis分页插件PageHelper学会简单到使用
通用Mapper的好处:直接继承类,不用写简单的增改删查的Mapper.xml文件,而且与Mapper.xml文件不冲突,在需要其他操作数据库的时候并不影响使用Mapper.xml文件,简单的使用PageHeper插件来分页查询
熟练掌握快速写测试类,构建实体类,getset方法
使用postman工具测试对数据库对增改删查
理解get/post @RequestBody @RequestParam 需要写入的参数要求
学会文件上传及文件上传的配置文件
熟练使用git 在写测试类的时候 swagger 打不开了,使用用git 进行版本回滚解决bug问题,理解git对于版本控制的好处
git 为分布式存储,但是代码在第三方平台托管,svn 是自己保管,但是自己服务器宕机或者出问题,影响工作
之前在任务一中对git svn没有太理解如何进行版本控制,代码控制,使用代码回滚以后理解git svn的好处
AOP的使用方式
1.经典的基于代理的AOP
2.@AspectJ注解驱动的切面
3.纯POJO切面(纯粹通过<aop:fonfig>标签配置)
4.注入式AspectJ切面
学习AOP的使用场景
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging 调试
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Performance optimization 性能优化
Persistence 持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
学会使用AOP来查看service的耗时
class:TbUser com.artist.service.LoginService.userLogin(String,String),invoke_time:9
class:TbUser com.artist.service.LoginService.userLogin(String,String),invoke_time:7
class:List com.artist.service.MsgService.allMessage(),invoke_time:200
class:List com.artist.service.MsgService.allMessage(),invoke_time:21
class:List com.artist.service.DepartmentService.selectAll(),invoke_time:13
学会配置nginx的日志文件及配置对nginx对日志文件分析
学会使用awk 来提取日志中自己想要对数据
请求方法 响应时间 URL
----------------------------------------------------------
request="GET request_time=0.007 fastcgi_script_name="/artist/doc"
request="GET request_time=0.672 fastcgi_script_name="/artist/webjars/css/chunk-vendors.ec7eee79.css"
request="GET request_time=1.231 fastcgi_script_name="/artist/webjars/css/app.ed578354.css"
request="GET request_time=1.732 fastcgi_script_name="/artist/webjars/js/chunk-ca8049da.1d418e7b.js"
request="GET request_time=5.094 fastcgi_script_name="/artist/webjars/js/chunk-vendors.2f54c298.js"
request="GET request_time=0.012 fastcgi_script_name="/artist/swagger-resources"
request="GET request_time=0.035 fastcgi_script_name="/artist/swagger-resources/configuration/ui"
request="GET request_time=0.264 fastcgi_script_name="/artist/v2/api-docs"
request="GET request_time=0.020 fastcgi_script_name="/artist/banner"
request="GET request_time=0.020 fastcgi_script_name="/artist/cate/1"
request="GET request_time=0.018 fastcgi_script_name="/artist/tblist"
request="GET request_time=0.015 fastcgi_script_name="/artist/work"
request="GET request_time=0.013 fastcgi_script_name="/artist/working"
request="GET request_time=0.024 fastcgi_script_name="/artist/user"
request="POST request_time=0.023 fastcgi_script_name="/artist/login"
request="POST request_time=0.014 fastcgi_script_name="/artist/login"
request="GET request_time=0.240 fastcgi_script_name="/artist/msg"
request="GET request_time=0.030 fastcgi_script_name="/artist/msg"
request="GET request_time=0.029 fastcgi_script_name="/artist/department"
任务三中遇到对问题:数据库中时间格式返回Json时是一串数字: "listCreatAt": 1638263106000,
但是在Console控制台显示正常:creatAt=2021-12-02 21:06:05.0
在前端页面显示页是正常得,不是很理解Timestamp 使用。
配置swagger 后有一次swagger突然打不开了,不知道是怎么回事以为是自己改了某个文件出现的问题,经过网上查资料都不是我出现都问题,就自己看日志,发现问题
09:29:02,684DEBUGRequestMappingHandlerMapping:317-Returning handler method [public java.lang.String com.artist.controller.loginController.loginPage(java.lang.String)]
09:29:02,685DEBUGDefaultListableBeanFactory:251-Returning cached instance of singleton bean 'loginController'
本来是要进入swagger-ui.html 的,结果给拦截后,用LoginController的方法给处理了。所以打不开,更改Login方法。
手写API文档 比较辛苦,swagger 对于代码入侵又比较厉害,有没有两全其美的好办法呢?
对于Aop面向切面编程之前没理解不明白是什么,自己去b站找了几个视频听了2个不同讲师的讲法才明白AOP是什么,为什么要用AOP。
使用了Mybatis-generator 生成的mapper文件,很多方法自己不会用
任务三总结: 在学习的过程中要仔细,遇到问题要学会自己先看日志,分析日志而不是出了问题就百度找答案。每天的代码都要git到服务器,熟练掌握git用法,多思考为什么这个方法要这么用
评论