- 00:00 - 风行,那我们来实现一下对吧?啊实现一下我们还是打开我们这个之前所写的这个代码,这个呢都给它关掉,然后呢,新建一个Mo对吧,叫DEMO好吧。摸掉。下一步,然后呢,叫钢笔。那好,中间呢,还是加一个杠。那接下来就是给当前这个模块去添加依赖,对吧?啊添加依赖,那等待它整个的构建完成,因为现在这个po文件还没有变什么。蓝色是吧。哎,应该好了,加好了,变成蓝色了吧,啊变成这个就好,刚才那个黄色不行。里面添加一个依赖。Depends对吧,然后呢,添加一个depend,我们要的是NG Co啊这一个NG的核心包,然后呢版本是。 
- 01:05 - 1.7对吧?啊,1.7我们用的就是1.7,那我们用这个包就够了,我们自定义什么东西,就这一个包就够了啊好,然后呢,我们打开这个C。诶,这个哈多DEMODEMO。这个没问题吧,这个添加加对。右键又一个pass啊好,这个呢,我们叫com点硅谷in the and。TE。CE。To in点呃,那我们是过滤哈,对吧,啊,也是区分类型的,那我们这样吧,叫tab。可以了。Po po啊,加这个类放在in这个包下,刚才说了它要实现。Ince的这个接口对吧?啊,Ince的这个接口int。 
- 02:01 - CPU啊这块呢,有很多我们要哪个的这个接口吧,啊不要搞错包了啊OK,用它好这块呢,就提示我们要干什么事了,实现相应的方法了,对吧,告诉大家回车实现方法。它里面有四个方法,跟我们猜的不一样,我们猜的是三个,但是你你注意看哦。这两个方法。一个对于单个时间处理的,一个对于P处理的,对吧?啊,那这两个你都要重写一下,还有其他的说实话。是不是做一些最开始的工作会被调用一次了,最后你关闭的时候是不是要调用一次close啊,和我们想的一样啊,那我们最核心的就是写什么。这两个方法,而且其实我们把它写好了,这里边我们把集合拿出来调它行不行。可以吧,啊,直接因为你写好了一个,我就没必要再去这样去写了吧,啊就这意思,好,那这个地方我们来写一下,这个呢是单个事件完结。 
- 03:07 - 诶。十件。拦截啊,单个时间的,这个是批量时间拦截啊,前面这两个方法呢,但是我们还用不上啊。批量是两点,OK,那这个它里面传的是even,看见了吧?啊even的是一个,之前我们说过它是一个什么。接口啊,它是一个接口啊,它是一个接口,后来呢,我们要自己创建一个even的时候呢,要用它的一个实现类啊,用它个实现类,好,那大家还记不得当时那个even呢,由两部分组成。一个head的一个body,那我们看一下A的点。诶盖了赛啊,其实你想一下这个一的无非就是两个属性,一个开的一个包底,然后盖赛的方法。对吧,那这不是get的方法吗?对吧,不是两个属性吗?啊,那你看一下,你看一下这个get的返回值是。 
- 04:05 - 看见了吗?对吧,啊,KV形式的,KV形式的啊,那我们拿出来这个还的,因为我们要给里边干什么。添加东西吧,是吧,啊叫还叫head,首先呢,第一步获取它一个head。获取事件中的时间啊。事件中的头信息啊,头信息KV形式对吧,那第二步我们是不是说了,根据当前这个内容当中是否有hello来决定添加什么样的一个图啊,对吧,所以第二步应该获取。事件。中的包对吧,哎,包比信息。啊,其实也就是他这个内容,那even.get body,诶,但是body你看它是个什么。数组字节数组,无论你传的这边传的数字还是字符传它都给你变成什么字些数组啊,这些数组,所以这字些数组我们没法用啊,我们要干什么。 
- 05:10 - 又一个string对吧,哎,有一个string给他进来。哎,那这样呢,我们就能用了CTRL加V得到什么。Body啊,然后第三步就是我们说了,根据body当中是否含有hello这个单词来决定添加不同的头,对吧,那根据什么?玻璃中是否有?好,来决定。添加。怎样的?头信息对吧,哎头信息。行线好,那我们来判断一下if。body.content对吧?啊,是否包含这个什么。 
- 06:01 - 好,哎,如果包含。那我们就做添加一个头信息,那就had.put对吧,往head里面放东西put,那put什么东西呢。是不是一个KV还有印象吗?来回顾一下我们之前所讲到marketplace那个地方。Multityle这个东西怎么用的,还有一样。在配置文件里边是不是要配一个什么的等于对吧,然后下面配什么map什么东西有没有影响对吧,那这一块那个hi的等于是不是就配在这了。就K我们当时说了,不是还里面的某一个K嘛,对吧,那这个呢,当时它是不是C,而且我当时说了这个C是可以自己定义的嘛,随便那我这个地方我就不叫C,我就把它取名叫太可了,到时候你就注意配置文件里面你就要写什么了,写太你不要写C,它就找不到这个K了,能听懂啊那第二个。 
- 07:10 - 是不是官方文档给的什么CC什么UA之类东西啊,我就不要,那我来什么呢?嗯。爱的硅谷对吧,啊,就来爱硅谷OK吧,随便这个其实你无所谓,随便写的好,然后同样的,如果说不包含hello呢。是不是也要给它添加一个head点,不,那你想想看这个地方应该怎么填了。K是什么?K是不是只能是你不能写另外一个K了,因为你在配置文件里面是不是只配一个图啊。对吧,Mapping是不是底下看到有多高,还有什么座T呢,对吧,OK那。像上面用了艾硅谷了,那接下来用什么呢?阿斯叫吧啊,无所谓了,你要叫阿斯也可以啊,随便你取什么名字,这个都无所谓啊,也就是说这两块呢,是我们所说的添加什么图信息。 
- 08:12 - 啊,添加图信息,同样的这块也是干什么,添加图信息,根据两种不同的逻辑来添加图信息,添加完了之后,我们是不是可以把这个事件干什么。返回出去啊,把这个事件返回出去就够了啊,返回出去那这块我们就把这个事情给他看搞定了。啊,搞对了,甚至你可以判断这里面还可以做过滤啊,因为我要判断一下,假如说里面不包含,Hello,不好意思,这条数据我认为是脏数据,我可以直接返回什么。那。就是个空事件能听懂对吧,因为这个呢,我们是整个添加类型,所以呢,不做这个事了啊,不做这个事了,就返回,返回这个就做了,好接下来。批量事件我们说了直接可以调用上面那个方法吧,就不用再把这个逻辑写一遍了,对吧,如果说你再想写一遍的话,你也不会这样写,你把它干什么。 
- 09:04 - 提出去提升一个方法,然后调用方法吧,啊,这里边也调用A方法,那里边也调用A方法,是这样一个东西,好,那这块它返回值要一个什么。List。那我们是不是应该先创建一个例子,那这个东西叫批量事件,我们说了它一定是被循环调用一个方法,是不是在这个里面创建。不太好了,可以在哪创建,前面是有个初始化方法。可以创建,但是我不能把生理写在这个里边。我是明显在这里边用不了了,所以在外面应该干什么。声明一个。存放事件的集合对吧,那。Least好里边呢,分行是什么?Even event对吧?啊even event好这个呢叫诶里边这个是不是它已经取名叫even event,不是,呃,取名叫even,那我们叫I。 
- 10:07 - 还那个events可以吧。就是添加过头的问OK吧,啊,添加过头的问好,然后初始化,我们是不是在这里面去做一个化呀,对吧,这里边呢做初始化,其实你这这样做也可以了。在这也可以,他在构造这个类对象的时候,是不是放,因为你在这初始话,他这个这行代码,假如说你在这等于六,它这个代码在哪就行。在哪执行?内容那肯定是内容嘛,在这个那个构造方法里面,在他的构造方法里面去执行的啊,他不会说直接放在内外面,先把它构建出来,然后再去构建,那对项是在构建构造方法里边啊,那我们这样吧,嗯,这个没用起来的时候呢,就不让它创建,对吧,我们在这里边是干什么,说实话等于用一个什么list list OK,看到加L啊,保存一下啊初实话这个呃,存放。 
- 11:09 - 事件的一个集合啊,触发事件结,那这块我们就可以用了,对吧,最终是不是把这个叫I的这个list给它返回了啊,那这里边呢,我们要做相应的一个处理第一步。要干什么事?第一步要做什么事?是不是应该把之前初始化那个集合干什么?亲一下呀,因为你现在这个全局的一定不要落到这个点啊,对吧,现在你用的是不是全局的,大家所有的方法都用一个,你要不亲第一次。十条进来了,第二次还是十条,第二次是不是写出去20条。对吧,那这就有问题了,所以第一步呢,清空什么集合。啊,情况镜头那。爱点可以啊,清空一下,清空完了之后电力。 
- 12:02 - Vans。给每一个事件添加同信息,对吧,给每一个事件。实践。添加头信息,OK,那这块呢是even点或循环啊,增加完就行了,这一个一个的even的好。那这个就叫便利吧,把这个表拿进来。这个是第三步。这个呢才是给他添加头信息,而且添加信息需要我们自己再去一个一个的说get get吗?不需要了,怎么做,直接调用这个intercept这个方法,把even扔进去吧,啊电器它吐出来是一个什么even,那吐出来的东西。是不是可以用list,我直接接收一下就不用干什么了,非得在接收一遍,然后再往里传吧,我直接这样写是一样的吧,就是构造了一个匿名对象吧,对吧?啊没有声明的匿名对象,OK,那这个结束完了之后直接返回结果对吧,第四步。 
- 13:05 - 返回结果,返回结果是这个意思。可能放在这,那这个就搞定了,这个就搞定了。来捋一下啊,捋一下首先呢,第一步我们是不是实现了一个。接口它里面呢,要实现相应的四个方法,初始化和中间的两个对于每一个事件的处理方法,对吧,它第一个呢是对单个事件的处理,第二个是对于。批量事件的处理啊,因为它里边可以单个发,可以批量发啊,正常的都是批量发的,那在这个里面呢,我们所做的操作是因为我们的需求是要根据你传过来数据里边是否有哈。来做什么事?来添加不同的头信息,为了让数据到不同的什么?拆到里面去对吧,啊,供这个拆选择器使用的啊,供他使用的,所以呢,我们首先拿出来的它那个什么。 
- 14:04 - Body。因为我们是要根据包里里边所含的内容呢,来决定添加什么头信息,那我们是不是把头这个信息也拿出来了,对吧,根据这里边这个内容去添加不同的。图信息。啊同信息那放在这,那等会我们写配置文件的时候,你告诉我这个地方应该怎么写。是不是那个select点什么等于。是不是对吧,然后下面有麦点。I的硅谷对吧,你可以等于一个什么C好,然后map点。第一个得塔等于C2,那这样就能把这两种数据给它干什么,隔离开啊,能给它隔离开能听懂。添加这一个图信息啊,就给它添加投信息,这个是跟我们之前看到那个Mar这边的应用是结合上的,你要注意这个T呢,它对应的是我们之前看到那个什么。 
- 15:02 - 啊,这个呢是C,它会去匹配头里边是否有这个C的这个P,如果有的话,他要去匹配什么。Value啊,只不过说你在官方文档里面看到的是。CC什么UA是吧啊u us嘛,无所谓,反正就是两个单两个字母对吧?啊,这个无所谓的,就是我们我就要用D硅谷,也就是我想这样用的,就告诉大家官方文档提供的那个内容,只是提供了一个参考内容,你随便改能听懂,有的东西不能改,不能改的时候我会提醒大家,这个呢,因为我都改了,所以他可以改。还有最后一个点,不要忘了,我们大家看到这还有个什么。的对吧,这个我说的是他在里面那个静态内部类构建方法用的啊方法的OK,呃,这块呢,我来一个。Static。Class啊,然后我们取名叫build,注意这个名字你也随便取,但是你取什么名字,你到了后面就写什么,能听懂。 
- 16:06 - 啊,你到了后面就要写什么这个地方呢,不用写全类名,因为默认的是它里边那个内部类,内部类它自己会在里边去找啊,会在里边找build build build,然后它要实现一个。标准对象啊,标准对象是特底下的一个标准对象。I。这个怎么回事?对,大型in底下的一个build啊,是这个接口啊,那个接口实现它,实现它之后是不是也要实现相应的方法,对吧?这里面呢,就有一个方法来看一下,这里面有一个。com方法。特别清晰。啊,做配置用的,做配置用的一个方法,那如果说你有很多一个配置从外面传进来,我可以在这里边先读到,然后更重要的是它这有一个B的方法,你看这个B的方法返回值是什么。 
- 17:08 - 是一个拦截器啊,也就是说他要的是一个拦截器对象,那这块就很简单,我们直接用一个。太应该,这是不是一个来系对吧,其实这个静态内部类的一个build,就是后面你们学到后面的时候,你会大量的看到这种。就是一个对象,他把它这个构造方法给他私有了。给他私有了,然后通过里边静态内部类,只能在内部去调,对吧,私有化不能在外面掉了,他通过静态内部类去构造。啊,封装了很多,后面我们一定能遇到,就是类似于我们后面要学的有个框架h base里边有一个类的对象,到时候我们就能看到这样一个操作啊,只不过说他这个自定义的时候,这样做就会稍显麻烦一点啊,自定的时候这样做稍显麻烦一点,这个是最容易漏的一个点,因为你正常的你要自定义拦截器的时候,你要实现自定义拦截器对吧?啊实现一个拦截器这个接口,然后你看到这几个方法的时候,你应该是能想起来里面一些东西的,但是从以往的反馈来看,你到做项目的时候啊,最多的漏的就是什么。 
- 18:13 - 这个build的啊,这个简单对不对,包括考试也一样啊,就是有时候考试题我们会出为考试题这个呢,呃,如何自定一个母的拦截器,然后让你写步骤,不是说非得写这个拦截器,然后最后一步就漏了这个build的啊,一定要记住啊,一定要自自己写的时候要关注一下啊。 
我来说两句