开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程管理-删除课程删除视频(最终测试)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11420
课程管理-删除课程删除视频(最终测试)
上面代码运行出现错误,泛型没有定义,加上泛型就可以。
我们先启用 edu 服务,可以发现,一启动就报错,就说明我们的代码有错误,让我们寻找错误,这个一般错误出现在第一行和最后一行,从头和尾去看,中间的不能看到,因为它是一个过程,第一行我们是直接看不到的,因为里面没有什么特别提示,所以我们看最后一行,从 Cause by 中,我们就可以找到最后的,这就是最准确的位置,因为它上面的就是局部错误,这就是最准确的,在这里我们可以看到,它提示我们不能转换实体类型,然后在 requestparam 中有一个 list,没有定义这个问号,这个<?>是泛型,一旦有这个,这个 list 要只有你的泛型,如果不指定,他就不能转换,报的就是这个错误。
没有定义问号或者定义泛型,
Could not resolve element tvpe of Iterable type @org. springframework.web, bind. annotation. RequestParam java. util.List<?>. Not declared?
不能转换实体的类型,
找到 vod 的接口位置,
//删除多个阿里云视频的方法
//参数多个视频 id List videoIdlist
@DeleteMapping("/eduvod/video/delete-batch")
public R deleteBatch(@RequestParam("videoIdList") List<string> videoIdList):
在 list 后面添加一个 string,为了规范,加入之后,我们再来看 edu,在 edu 中找到 vodclient,
//定义调用删除多个视频的方法//删除多个阿里云视频的方法
//参数多个视频 id List videoIdlist
//参数多个视频 id,List videoIdList
@DeleteMapping("/eduvod/video/delete-batch")
public R deleteBatch(@RequestParam("videoIdList") List <string> videoIdList)
这个 list 这里没有,也需要加上 string,这样就可以了,将泛型也加入,这个我们需要写上,加上之后我们再次启动,看看效果。
先启用 edu ,再启用 vod ,把 nacos 都启动起来了,
目前的效果,可以看到它已经启动起来了,也没有报错,这就证明是我们没有添加泛型导致的,这个我们要找到,它有很准确的提示,做完这个之后,我们再把vod做一个启动,就是我们调视频的部分,都启动之后再做测试,启动之后,我们一般在开发中会遇到各种各样的视频,所以我们把问题都总结起来,以后再遇到这样的问题,就会很快的定位到,经历的多了之后,我们会发现这些问题很相似,无外乎那几种问题,所以我们看到这样的问题,都启动之后,我们先来到页面中,重新往里加,在项目中先访问一下,前端也要启动,看一下最终结果,我们再重新加一个课程,然后再添加小节添加多个视频,把过程做一个测试,就看我们删除课程之后能把我们多个视频都删除掉。
登录之后,来到课程列表,点击添加课程,加一个课程,
点击保存并下一步,这样我们就加进去了,再添加一个章节,
再添加一个课时
然后上传一个视频,再加一个小节,达到多个视频的效果,
再次添加小节,
上传视频成功之后,这个章节里边有两个小节
第三步确认,点击发布课程,就最终发布了,包括我们的控制台里,看一下我们刚添加的那两个视频,看清楚时间,接下来对删除做一个测试,因为之前页面没有整合,大家需要整出来,我就使用另一个整合出来,效果是一样的,那我们来看一下效果,大家要把前端删除完善出来,直接访问,
http://localhost:8001/swagger-ui.html
打开之后直接找到删除课程的方法,就是
/eduservice/course/{courseId}
在这里上传一个课程 id,..962,我们主要看视频,放进去,在删除之前,我们可以看到视频都有,点击尝试,我们看结果,可以看到
success": true"
code": 20000,"
message":"成功”
data": t
提示我们删除成功,我们可以看到表经过刷新后视频消失了,在看我们阿里云控制台中,经过刷新后我们可以看到视频消失了,这样的话这个功能就完成了,把前端也整合出来,最终把调用的过程也写出来,所以就要掌握这个功能,这个功能和我们之前的两个功能,就是把这个 spring cloud 中的服务注册,nacos 和 figen 做了两个功能的实现,通过两个功能,要把过程做到特别熟练,该怎么引入依赖,加注解,包括在调用过程中 interface 怎么写,以及要注意的地方,这些细节都提到了,所以我们就完成了这个测试。