07、12306系统会员基础功能的实现
7-1 本章介绍 (02:24)
7-2 详解乘车人表的设计 (10:57)
日期类型datetime(3)可以保存到毫秒,mysql5.5及以下不支持
7-3 乘车人新增接口开发 (16:12)
7-4 使用HttpClient保存登录信息 (07:37)
使用http文件测试的好处是,测试文件可以随源码提交,方便组内协作测试,支持打日志查看结果,支持断言,支持全局变量,方便多个接口关联测试
7-5 使用线程本地变量存储会员信息 (20:36)
功能实现流程:
· 使用spring拦截器,获得登录会员信息
· 增加专用的日志拦截器,统一设置日志流水号
· 使用ThreadLocal保存登录信息
ThreadLocal可以方便线程内,多个方法传递参数。
本节方案:在接口入口获取会员信息,并放到线程本地变量,则在controller、service都可直接从线程本地变量获取会员信息
7-6 前端二级路由页面开发 (19:23)
7-7 乘车人新增界面开发 (10:07)
7-8 乘车人列表查询接口开发 (17:16)
所有的列表查询接口,都要注意查询的数据量,不能因为查询量太大,把内存打爆,也不能因为数据量太大,而把带宽打爆,特别注意是否有大字段,如多媒体字段。
控台接口、会员接口、第三方接口等,不同的接口用不同的前缀,比如控台前面是/admin/xxx,第三方全部是/api/xxx,做接口隔离不要混用
7-9 集成PageHelper实现后端分页(一) (09:41)
列表接口要做分页,否则容易因为数据量大而把内存打爆或把带宽打爆。
PageHelper.startPage只对第一条遇到的sql起作用,使用时,要紧跟着查询语句
7-10 集成PageHelper实现后端分页(二) (14:09)
7-11 乘车人列表查询界面开发(一) (14:21)
vue概念:生命周期函数,也叫钩子函数,用于在页面从打开到关闭的各个阶段,执行不同的动作。
对reactive声明的对象或数组重新赋值,会使其失去响应式特性,对对象里的属性赋值才能保持响应式特性。
axios的get请求的参数固定放在params对象里
{
params: {
}
}
js三点运算符,用于展开数组或对象
前端常用设计:增加loading可以防止用户不断点击提交,高并发场景必备,有些还会故意延迟取消loading,不是后端返回了就取消loading,而是返回后,再过500毫秒再取消loading,这样可以进一步防止用户太快的提交。
7-12 乘车人列表查询界面开发(二) (15:03)
7-13 解决Long类型精度丢失的问题 (07:20)
不同的语言,虽然都有int long等类型,但他们的精度不太一样,在数据传递时需要特别注意精度丢失。
解决方法:将long传成string
7-14 乘车人编辑接口开发 (07:16)
7-15 乘车人编辑界面开发 (15:58)
对reactive声明的对象或数组重新赋值,会使其失去响应式特性,对对象里的属性赋值才能保持响应式特性。建议全部用ref,统一响应式变量的写法
7-16 乘车人删除接口开发 (04:41)
7-17 乘车人删除功能开发 (03:02)
前端常用设计,对于重要的操作,如删除,需要增加确认,防止误点击,有些特别重要的,还要有二次确认