00:00
啊,来注意啊,接下来呢,我们给大家去讲什么呢?就讲一下我们一直没有给大家去说的这个mvc not German能听懂吧?啊,其实现在讲就已经差不多了啊,啊,其实我们刚刚在讲的这个话题中,就处理JA的时候,我们提到了一个despite solid,默认装配一个request mapping handle adapter。对不对,然后呢,而这个家伙呢,啊,又装配这个message converter,那么其实大家注意了啊,我们刚才在演示的时候呢,大家听我讲啊,我们在这个配置文件里面,你看了哈,是不是已经配上了这个配置了,对不对?好,假如说大家注意了啊,我把这个呢先拿掉,我把这个呢也先拿掉,看懂了吧,这两个呢,我都拿掉了,拿掉以后呢,我们再去跑一下,来先停掉,我们再来跑一下。
01:01
OK,成功了啊,来我们去访问一下,你随便访问一个请求啊,就是我们刚刚加断点的,是这个里面加了断点吧,来进来好,进来以后呢,我们进到DB,现在看谁呢?还是看我们的这次,这次里面呢有一个。Handle谁呀,Handle了adapts吧,在handle了里面,大家注意了啊,你看看还有没有我们刚刚说过的request mapping handler adapter啊,有没有,你看一下嘛,刚刚我们说的是什么呀?就是它会装配一个request mapping handle adapter,然后呢,它里面才会装配我们的message口吧,但是现在我们能看到,当我没有加那两个配置的时候,其实呢,主要是什么?当我没有加这个配置的时候,对吧,主要就是它啊,你不加它的时候,那么我们能看到的是在我们的这个request mapping里上面啊,在我们的Dis despite solid里面,它所装配的handleler adapt里面就已经没有那个request mapping handler adapter了。
02:05
看到了吗?为什么没有了呢?因为它装载的是老版本的一个东西,而你加上了我们的MVC,这摘va以后,它装配的是一个新版本的一个东西。对吧,哎,所以说呢,讲这个的原因是什么呢?就是想告诉大家,其实我们处理再生。也得由谁来支持啊?由我们的mvc notation Java来去支持,听明白了吗?哎,也得由他来支持,能理解什么意思吧?你看吧,如果说你不加它的话,那我就没有装配它呀,那我不装配它的话,我能装配它吗?是不是啊啊,所以说这个大家一定要注意了啊,所以说呢,诶,对于我们这个JA的处理来讲的话呢,也是由我们的,诶这样的一个配置就是mvc not Java啊,由他来去支持的啊这个大家什么啊,大概的去了解一下就行了。
03:04
听明白了吧啊,大概的去了解一下就行了啊,好吧,我们就不再去生物的研究它了啊OK,那么接下来呢,我主要是给大家去讲一下这个mvc not Java,它这个配置的主要作用是什么啊好,呃,我们先把这个停一下啊,我们先把它让它放行啊,先把它停一下,全部都放行吧,好,全部都放行了啊,先把它停一下,呃,然后呢,大家注意。呃,我们这样来讲啊。啊,我们在这个位置呢,也给大家去写上一个笔记啊,在这里面我们再去扭一个非啊我们就专门叫什么呀,就叫这个MVC,然后呢,下划线啊,哎,Java讲TX吧,能明白吧,哎,我们来去讲它啊好呃,这个配置OK,首先呢,我们先说一下我们在哪几个地方用过它,听懂了吧,哪几个地方呢?来第一个地方就是当我们配置了什么呀,好配置了一个叫做mvc v control了后吧,OK,第二个地方我们配置了谁呀?好配置了我们的mvc default solid handle了以后是不是也用过它啊,对吧?来第三个地方就是什么呀,处理我们的JA啊,就是处理JA啊,其实说白了是什么?
04:34
呀,对谁呀,对这个message converter啊,对MYHTP啊message convert的啊convert的一个什么支持能明白吧,好,其实除了这些之外,这是我们能感受到的,那么除了这些之外呢,它还有比如说呢,啊,对我们的数据绑定啊,流程中的什么,对数据绑定流程的一个支持,然后呢,对我们的啊,对异常处理的这个支持啊党他做的事情特别特别多,一两句话你是概括不全的,听懂了吧,所以说呢,我们要给大家去讲的是它的这个原理啊,就是我加上这个配置到底做了什么事呢?啊not啊这个这个呃,对,如下。
05:28
啊,就是。呃,MVC的作用吧,对吧?啊,作用就是配置了它以后呢,你得去加它,配置它以后呢,你也得加它啊,啊nota好,它的一个什么原理,好它有什么原理呢?啊大家听我讲就是,呃,我们来去想这样的一个过程啊,就是你在去写一个软件的时候,我们可能会写出第一个版本,第二个版本,第三个版本,第四个版本是这样的吧,那么你在一开始设计的时候,比如说这里面有五个组件,好,这是最基本的五个组件,比如说我们的一个项目最基本有五大组件,随便举个例子啊,那么第二个版本里面,你肯定也是逃不了这五个组件的,第三个版本你肯定也得有这个五个组件,你是不可能去少的,对吧,你少了以后呢,你整个框架的这个整个这个软件的体系它就出问题了,整个架构就出问题了,但是呢,我们会发现在后续的版本中呢,你发现诶之前我在写的这个五个组件里面,其中有一个组件的设计。
06:31
的不是特别完美,不是特别理想,我希望由一个新的主件来去代替它,明白吧,但是你不可能是把这个主件完全给它去掉,把新的加进去,这样的话它兼容不了旧版本,能理解什么意思吗?就是比如说诶,我发现在这个版本中呢,我希望由一个全新的组件去代替其中的一个,那你不可能把那个旧的直接给他干掉,而把新的加进去,如果你这么做的话,那么这个版本兼容不了以前的版本,你能理解这个意思吧,所以说我们会怎么去做呢?来,我就在这个版本中,你原先的五个组件呢,还在,我把我新的那个组件呢也加进来,但是呢,我可以通过一些配置,然后呢,让这个新的组件呢,去把原先的给它替换掉,如果这个配置你加上了,OK,那我用的就是新的组件,如果我这个配置没有加,那我用的还是原先的这个组件,能理解这个设计吧,诶我们是在程序中可以这么去做的,那么其实它的原理就是什么呀?诶通过什么呀,就是哎启。
07:31
利用我们新的哎,启用啊啊启用一些什么呀,一些新的这个这个组件啊,比如说一些什么呀,配置,然后呢,替换我们啊新的一些什么,呃,组件对象吧。啊,然后呢,替换一些什么啊,原先啊,旧的啊一些什么组建对象,然后呢,啊从而啊实现一些什么呀,实现一些什么新的,然后呢,更什么呀,强大的一些什么功能,明白吧,这就是它的一个原理,能听到什么意思吗?好,那么接下来呢,我们就围绕着好围绕着什么话题呢?就围绕着我们第一个啊,就是来给大家去解释啊好解释什么东西呢,我们就围绕着当我配置了它以后好,配置了它以后为什么好,为什么还要什么呀,配置我们的mvc Java,明白了吧,为什么还要配置它,我们围绕着这个话题呢,来给大家去解释一下,好吧,那我们就还是采用我们刚刚的现在的这个工具啊,现在的这个工程来去讲,首先呢,我回到这里面,我把这两个。
08:48
大伙都干掉看到了吧,都干掉以后呢,我们我们来看谁呢,我们就是看一下来,注意我叫做这个test Jason是吧?行,我来把这个服务器呢,我们看看启动没启动。
09:03
启动一下啊,启动一下。好,那么启动了以后呢,我们来注意了啊,现在我要访问谁呢?我去访问我的这个list or EPS能明白吧,但是呢,我要提前回到这个类似哦emps呢,给大家去加上一个断点,能注意吧,加上断点,然后呢,现在呢,我就去访问一下啊来回去好,我们来访问走好他进入到。断点呢,没debug启动啊,来停掉debug启啊。好,第八个题。好,呃,起来以后呢,我们来注意哈,再来访问一次吧,来刷新走好来到我们断点了吧,停到断点的时候呢,你不用去看这个源代码啊,我们主要看谁呢?我们主要是看这个家伙,来这次里面还是找这个handler adapts,而在这里面我们能看到他装配的是这三个组件吧,对吧?来我们就说了啊呃,因为这里面我不能截图啊,就是这个里面呢。
10:13
因为我这个里面保存不了图啊,所以我就以文字性的描述来给你写啊,就是这个是一可以吧,然后呢,这个是二,能理解什么意思吧,那么接下来我要解释的就是啊来第一种情况就是呃,一跟二。好都没有配置的情况,OK,这种情况都没有配置的时候呢,我们的这个PA啊,注意啊,就是这个dispa。好,呃,中这个handler adapts a怎么写来着,看一下哈,忘了。
11:04
这个handler adapt叫什么来着?嗯,APS是吧?好,来写到这,好as是吧?好,这个handler adapt中装配谁啊?好,总共装配的是有三个东西,哪三个东西呢?我给大家来考出来,Handler adapts里面呢,总共有三个东西啊,一个是http request handle了adapt啊,这可能得写一下了啊。好,Http request,好handle a adapt,然后呢,Simple control。好,Handle handle adapt对吧?A,好,第三个就是我们的method handle OK,好,这是我们这个都没有配置的情况下,那么它装备的是这三个主键,然后的话大家注意哈,现在我点的是list啊,所以说呢,你看了啊,我回直接走再走再走再走,诶一直走完啊好,再走再走再走。
12:23
还有呢?好,走完以后大家注意了啊,走完以后呢,我们发现这个页面是不是能出来的呀,对吧,但是现在我们很明显,你看它有一个no麦放的,就告诉你这个GS是不是找不着的呀,就现在这个静态资源请求你是什么处理不了的,好,那么接下来呢,我们就把这个加上,把这个加上以后呢,其实我们能发现静态资源请求它是能处理的,大家还记得吧,OK,来把它加上,加上以后呢,等它重新部署完啊,来可。好,部署完了来部署完了以后呢,我们再来访问一下这个请求,注意了啊,还是这个请求来刷新好,还是来到这个断点里面,我们再来看这个,这次这次里面的这个handler adapts,注意它变成了两个,你看到没有,是变成了两个了,看到了吧,OK,来我们就要说了啊,说什么呢?来给大家写到这儿,就是一配置的情况下啊,一配置然后呢,二不配置的情况,然后呢,什么情况呢?就是我们的这个中它装配谁呀?只装配上面的这两个,这是我们刚刚能看到的现象吧,对不对,那来看一下啊,再来看一下带着你们装备谁啊,是不是只装备了这个request handle adapter以及我们的simple controller吧,对吧,谁没了,对比一下是不是这个东西没了,对吧?那么。
13:54
它没了以后呢,现在我们带来一个什么问题呢?就是request mapping是不是不好使了,那么其实我们现在能拆到的就是它肯定是跟我们的request mapping那个映射有关系的,好现在我们就去分析它啊,来把这个拷贝上,我们CTR shift t,我们来到加它里面,呃,我找一个加构源码的啊,这个应该是加构源码的来进来,好我们看它,它是干嘛的呢?注意首先你能看到这个家伙是一个过时的,你看到没有,对吧?打了一个什么删除线,这是过时的,好我们不用去具体看它的代码,我们把什么打开呢?我们有一个Java do,大家用过没有,有没有。
14:31
啊,真干脆是吧,Java do打开这个Java do是干嘛的呢?就是你把鼠标放到类上面,它就会把这个类上面所有的这个注释啊给你显示到这儿了,能看到吧,而且呢,你能看得懂的注释,对吧?如果你看这个的话,你看它上面这个各种各样的格式,你是看不懂的嘛,你看这是这都是啥呀,是吧?但是呢,你看我们把这个鼠标放在这个类上面,然后呢,在这个Java do里面呢,就给你显示出来,好,我们来简单的翻译一下,它是什么意思呢?所首先呢,这是一个过时的对吧,然后再来往下看,说它实现了一个handler adapter这个接口,然后呢,Map是映射,映射什么呀,映射一个handler的方法,是不是请求处理及方法呀,基于什么呀,基于HTTP的一个pass。
15:23
是HTP请求吧,就是它基于HTTV的请求与什么呀,与我们的请求处理器的方法来做一个映射,那你看一下请求与方法的映射不就是通过request mapping来去做的吗?你看它是什么呀?诶经过我们的request mapping这个ation来去完成的吗?是不是啊,所以说呢,你一分析你就会发现哦,它确实是要什么呀,去完成我们这个request mapping,诶这个映射的它跟这个绝对是有关系的,那么现在它没有了,那么request mapping的映射不好使了,那也是很正常的了,因为你知道跟它是有关系的嘛。明白了吧,好,那接下来呢,我们就来还是把这个放心完啊,让他都走完,好走完以后呢,我们再回到配置里面,把这个给它加上,看到没有,加上了吧,加上以后呢,我们等它重新启动完,重新启动完以后呢,我再来访问一下这个请求,好断点还是停到这,停到这以后呢,我们再进来看这次handler adapts,好,这里面我们看一下又变成了几个了,三个,但是大家注意,现在它叫做request mapping handler adapter好写这写到写到这里面啊,就是一跟二都配置的情况下。
16:44
OK,一跟二都配置的情况好,然后它里面装配谁呢?除了装配这两个之外,还装配了一个好,还装配了一个叫做什么呀,我们来看着写啊,装配了一个叫做。
17:05
好叫做谁呀,叫做requestping handle大对吧?诶那么这就是我们两个都配上以后,它装备的是它,那么现在的话呢,我们的这个请求呢,它也是好使的,你看了啊,我先让他全部都放心完,放心完以后呢,我们能看到,诶我们能看到这个是不是又好使了,对吧?并且这个地方有没有那个no nobody放的没有,那说明我们的GS肯定也是好使的,好现在我们就来分析一下,为什么加上那个配置以后又好使的呢?原因就是我重新装配了它,而这个家伙我们来分析分析它是干嘛的啊来,我们选中CTR shift t,我们来进去,好进来以后的话呢,大家还是注意啊,你还是去看这个Java do就行了啊,看Java do,然后你看的时候呢,它是一个什么呀?诶,抽象了什么handleler method adapt,然后支持什么handle了method位什么S。
18:05
Better是吧,就是什么呀,使用你这个方法的签名呢,去支持你的什么handle了,Method等等等等什么的,好像也看不大懂是不是啊,你从这个地方好像也看不出来什么关键的一些信息,但是你注意我们再回到我们刚刚的这个not method这个位置,有一个非常关键的信息大家没有看。它是一个过时的,下面就给你描述到了,在support3.2之后被谁呀,被request mapping handle adapter给他替换掉了,那么你看一下这个家伙是不是就是我们现在正在看的request mapping handle adapter,也就意味着在我们support3.2版本之后,他把谁替换掉了呢?就是他把我们的anoation这个家伙替换掉了,那么既然我能替换你啊,说明你的功能我绝对是可以做的,然后呢,我是不是还可以去提供一些新的功能啊,这也就是我一开始给大家说的,我们通过一些配置,要把一些新的组件对象给它装配进来,去替换掉旧的组件对象,从而实现一些更强大的一些空档。
19:17
明白这个意思了吗?所以说我们加上那个配置以后呢,它重新帮我们装载了一个新组件来去替换掉我们旧的组件,因此request mapping的映射就又好使了,听明白这个意思了吧,所以说整个总结下来就是一个什么呀啊,就是什么在这个。好3.2之后,哎,这个谁啊,就是他。好,替换掉了,替换掉了谁啊?替换掉了,把它替换掉了,没考上。
20:01
啊,替换掉了它了,那么你把这个知道了以后呢,其实我们整个的这个mvc German就是第一次用它啊,这应该是第二次啊,第二次用它的这种情况,我们是不是就明白了原理是什么,知道为什么了吧,现在就好OK,那么讲完这个以后呢,注意啊,我在分析的时候呢,讲的东西比较多,但是呢,我要求大家记住的东西其实特别特别少,什么呢?就是你以后在使用po Mac的时候,如果没有明确的要求的情况下,你就把这个配置加上mvc notation driverva加上,加上它其实只有好处没有坏处。能明白了吗?但是如果说人家明显的要求你不要去加它,因为我们要去兼容旧版本的一些功能,那么你就千万不能加,加上以后可能就不能去兼容了,理解这个意思了吧,OK,所以说没有明确要求的情况下,你就把它加上。这就是你们要记住的,然后像我刚才解释的这些原理性的东西,那么大家课堂上跟着我去走上一遍,你明白了就行了,下去以后你们也不用自己去看这个东西,不用去花花时间去啊,研究它这个底层装配的什么,没有装配什么,你课堂上跟我听我讲一遍就可以了,理解了吧,OK。
我来说两句