00:00
我现在来到我这个cos里边,因为它是课程相关在里边,咱写刚才我们那个map一个调用。根据。啊,写个注释,根据课程ID查询课程这个确认的信息在里边,我们写这个接口,我就叫写个get提交,然后里边呢,写个方法就叫这个get。Publish。Info。在里边传入我们那个课程的一个ID啊,就是写一个ID,然后写完之后下面写方法public r方法,我就叫这个名字了。把这个写过来,然后写完之后把ID再用注解给它取到。加一个pass这个注解,加个string ID,然后这个写完之后,咱们来调这个service,就是我们这个Co services里边这个方法就叫这个。
01:00
Publish。Cos。Info里边传盖地。然后出完之后让方法返回咱们刚才创建这个对象publish,就是cos publish view这个对象,因为它里边包含咱们所有这个属性。把这个给它返回,然后最终加上一个铝退。r.OK点上date。加上一个叫。Publish。Cos。然后它的值就是我们的。这个值这是CTRL部分,然后这个写完之后,下面咱写那个service部分,在service里边把这个做调用,但是service中现在要调这个map。那咱们看这里边啊,这是interface中,然后咱们找它的实现类。这里边实现那种方法创建。在实现类中,咱就是调用那个map。
02:03
写个注释啊,调用map,那怎么调用呢?给大家说明啊,咱之前提到过,你在这里边要调方法,可以写个base map,也可以写个Z,但是现在你要去调,我们自己写,那map就必须写base map才能调到,那我现在写一下啊。Base map,点上咱刚才那个方法。大家看这方法是不是就是我刚才写的,也就是里边的这个方法,咱们把它调到了里边,传个ID,最终它就返回我们这个对象,咱们把对象做个吞就可以了,然后在map里边它就会。调离方法时候,会对应调到里边的插M文件,执行思路语句,把结果给咱们返回,所以这是一个调度过程。通过controller调services,然后swis用base map调map中我们刚才的方法,这方法中它最终会经行到我们写这个思语句,然后把这数据得到。
03:02
所以这个过程。我们就就做到了啊,里边这个特点啊,然后这个做到之后,咱们最后把效果咱试一下啊,看这么做之后,这值能不能得到。咱们最后测试一下啊,主要重点还是在map部分,这个不要给他熟练,就是咱们最早在买B阶段学到的啊,这个你不要给他忘记啊,后面咱也会经常这么来写写这个最后语句。这个启动了啊,然后启动之后呢,咱还是打开这个。Swa做个测试啊。这个我先清掉啊。打开swagger,然后找到我们的方法,咱刚才的方法应该是这个get publish Co info在里边呢,我们可以传入一个ID,那ID,比如我就传这个值,把它传过来。咱看啊,目前效果能不能出来。我穿完之后点这个叫try it out。
04:02
但是大家看里面有问题。什么问题,是不是执行了异常啊,它就表示啊,目前接口中应该是报错了,那大家看接口中报了什么错误,看里边啊,有个错误就是这个错误。我把这个给各位截出来啊,看看这错误是什么。就这位置。给它分开来看啊。这里面。然后咱们看这错误描述啊,它清楚的告诉我们,它是由那个买be报的错报的错叫什么叫这个帮顶这么一个错误,这是什么?就是你的数据绑定异常,然后它下面提示我们是什么异常,打开这一段单词。所以这个你可能不认识,没关系,咱找各位认识的单词,这你肯定认识not found是没有找到什么没有找到,他告诉我们说这个方法没有找到,它就没有执行啊,所以我们刚才运行发现出现这个错误。
05:01
那这错误为什么会造成?给大家说一下啊,这里边当你就是在开发中调这个my be这个配置文件的时候,你发现已执行,最终报这个错误,那这错误呢,外乎两个原因,哪两个原因,第一个原因你看一下你这个方法包括这些是否写错,但是咱们应该没有错,就是你这个map中的方法名字。我先关掉啊,找到我们那个主要的就是map中的方法名字跟这名字是否一样,但是咱这写的肯定没有错,所以这个问题一般可以排除,它主要就是第二个问题,那问题是什么?给大家这里边我特别描述一下啊。我小的位置。脚下边啊,就咱说的最后一个问题啊。就是咱们在我们的项目中。啊,项目中我们创建了map的这么一个接口,然后也编写这个叉买lo文件中的circle语句也都做了,但最终执行它出现了。
06:04
这么一个错误,他的错误就是咱们刚才看到的这个错误。是这个,它叫做这个。绑定的这个异常告诉我们说这个方法没有找到啊,这是我们看到的,那这问题为什么会出现,给大家解释一下啊。我小这位置。就是这个错误是什么呢?它是由于这个ma,它默认的一种加载机制。造成的一个问题啊,由没问造成问题,那什么问题给大家说一下啊,咱看这个里边看这位置啊。在我们这个工程结构中,有个地方叫target。这各位不知道是否知道啊,如果不知道咱看一下,各位一看就能看懂里面是什么。再把你打开。大家看啊。这里是什么?你看这文件都是文件,是不是就是可class文件,也就是说咱们Java代码编译之后,它会到这个target中来,里面就是你编译之后代码包括配置文件都有,但是你看里边有个特点啊,因为咱们在原始的代码中,就是咱们这个源代码中map里边有这些,是不是还有一个叉L文件呀,但是你看它编译之后的这个map中。
07:19
大家看到问题了吗?这叉L部分在你编译之后里边它是不存在呀,本来是有叉L,但是这里边你发现没有,所以它报错,就是这个错误,他就是以执行这个接口去找配置文件,但是这里边没有配置文件,他找不到,就报了错误,说你的方法找不到啊,这是我们遇到一个问题,这是由于may造成的,因为may呢,它在默认加载的时候,如果说你把代码写到这个Java文件加下,那它只会加载什么,就是里边这个Java类型文件,因为咱们这个叉L,它不是Java类型,是叉L类型文件,这文件默认不会加载,所以他就暴露错,说这个找不到。
08:02
这是咱们说一个问题啊,这各位给他知道啊。我想这里是MA1种机制造成的。因为ma。它在加载的时候,或者编译的时候,它会把你的Java文件夹里边那个,就是点Java类型的文件进行这个编译包进行加载,如果说你有其他类型文件,它不会给你加载,比如说咱们有那个叉L文件,它就没给咱加载,所以他就报了一个错误,因为你叉L在你编译之后没有,所以他找不到。这是它造成问题,那这个问题呢,咱说出来了,那最终咱肯定要解决一下嘛,咱看怎么解决啊。我想这位置。就是他的。解决方式有多种方式啊,首先第一种方式最简单,咱可以啊,直接复制你的叉买到你那个target里面去。Target目录中这么做是没有错的,因为target中的就是你编译之后的,那他没编译,我帮他编译,我就把这个插买到这个文件夹,咱直接复制,然后复制到你这个ma中去,这么做可以做到没有问题,这是第一种方式,但是这种方式确就是你还每次需要复制,如果你忘记的话,他还是没这个东西。
09:21
所以大家注意,这种方式一般用的不多,但是能做到,然后还有第二种方式,第二种怎么做呢?写一下啊,他的做法就是咱们就直接啊。把这个叉L文件放到我们的另外一个目录中,就是这个目录。Resource目录中放到这个里边,也就是说你把这个插埋lo部分放到这个下边,因为resource里面内容它会给咱们做个加载,里面都有啊,但是这种方式我们很多时候也不建议用,因为你这么做的话就改变了你项目的结构,因为它从代码升级生成你结果一改变,里边很多地方不好找,所以咱们也不建议这么做,但是他也能做到,咱一般推荐都是用第三种方式。
10:08
就推荐使用什么方式呢?通过配置来实现,通过配置,那配置怎么做呢?咱需要两个地方啊,我先写一下,然后咱们快速演示出来啊,第一个在你的POM文件中做配置,就是po点叉L中,然后第二个在我们那个项目的。OB这里边做个配置。就是OB。里边进行配置,主要在这两个地方配置就会做到,咱们都推荐用这种方式。所以各位给他知道啊,然后他做法就是,呃,今天演示不完了啊,我就说一下,咱们明天再来演示了啊,大家看我的课件中啊,在课件中我这里写到了就是这个做法,这问题咱也看到了,那做法怎么做?第一个你在po文件中加上这段配置,就是让他去加载里边的插文的文件,这是第一个,然后第二个在里边加上这段话,指定你插那个加载的位置。
11:08
通过这两个配置之后,那我们再一做操作,在他中有这个插入文件,然后咱执行就不会报错了啊,主要是这么一个方案,咱先大概说一下啊,咱明天再来演示啊,今天演示不完了啊。这个图我先保存一下啊。是咱说的第七个。我写到这个位置啊,就是咱说那个circle语句,还有ma问的一个加载的一个机制。这个啊,我们都说明,然后明天我们再更细致演示,各位先知道目前有这么一个小问题,明天咱把这个做个详细配置,然后里边一些具体内容,咱再详细做个解释,那这个啊,我们先说到这里啊。
我来说两句