00:00
好,同学们,接下来我们继续给大家介绍一下我们的get位的最后一个知识点,Filter,那还记不得我们的三大核心概念,路由断言过滤器指的是spring框架中的getway filter使用过滤器可以在请求被路由的前或后对请求进行修改,好那这个东东的话呢,再看一眼这个主题还是有点重要啊,路由predictdicate断言,然后有我们的层层的过滤器来保证最终达到我们的微服务,你看要经过三观合适的才能过来,而且这个filter还会形成filter过滤链,要这个链条上的所有环节你都要满足了才允许你,OK,好,那么但是呢,也不用担心哈,这块的话呢,我们呢。来讲解的话呢,采用类比的学习方法,有点像我们学web阶段,郑国老师给大家讲那个他们开呀,Web啊,JSP的那些的时候,是不是也学过一个filter,哎,跟那个类似啊,差不多,那么首先它是个什么?那么我们来看看官网getway filter factor,那么允许你干嘛进入HP请求和返回P请求之间,路由器通过指定路由产生,好一样,跟我们的predictate一回事,内置了多种路由器,那么我们呢,过来看看吧,首先它的生命周期两个。
01:24
在业务逻辑之前和业务逻辑之后,有点像我们的spring的前置通知和后置通知,好第二个它的种类分为。单一的和什么globe全局的,那么在这块啊,我们先看看官网呢。的配置。首先getaway单一的,那么官网在这儿多少31种之多,第五个啊,那么同学们你清楚的,那杨哥要是把这些配一遍,而且31个都要演示啊,并且每一次演示啊都要重启,对吧,每次的话这个重启的话是非常耗费我们时间的,那么所以说在这儿请同学们自行了解一下。
02:07
当然我们肯定会讲,你放心啊,他这个用的很简单,比方说啊,在这个随便点一个吧,用大家。见过的,那么请求逃爱的,你看。以前我们是粘predict,现在是粘filters,就这么粘贴就OK了,那么我呢,就请大家呢,照着这个官网自己去尝试试两个就OK了,你不用30多个都干,这是什么getway filter是单一的哈,那么接下来我们还有一个是什么lo filter是全局的,也不好惹多少。十多个,那么加起来31加十四十一个那。不干别的了,OK,所以说呢,我们这儿只是举一个例子啊,重要的是这个啊,一般因为我们过滤器都是用在网关嘛,用在最外面,比如说你现在要带着胸卡,你只要是这家公司的员工,你只要进来就OK了,你是合乎身份的,至于说你进来了以后,你是去人力部,财务部,后勤部,市场部,研发部,销售部,无所谓,那是你后面的事,总之你被放行了,所以说我们待会儿主要是讲我们的全局的自定义过滤器,那么对于这样的配置类的东东。
03:19
一样,同学们加这么一个,那么跟官网上一样,杨哥也是来自于官网哈,会在匹配的请求头上面加一对请求,那么名字啊,就叫这个值就叫这个OK,那么这个是我们的。福塔,那么好,接下来因为由于它太多了,每次我添加掉要省略,我就不再废话,那接下来我们尝试一下我们的自定义过滤器,那么来吧,我们自定义过滤器要怎么玩呢?首先要实现它两个接口,接口global filter和water。那么我们的这种过滤器主要是干嘛?是不是在所有微服前面挡着什么全局日志啊,统一网关权键啊等等等等,换句话说就是你首先过来找我这网关,你匹配我才泛行,泛行了以后你才去调用我们后面的微服务,好,那么这实际工作中我们用这个用的多一些,其实他给的这些啊,你配来配去的也不大好使。
04:18
我们用自定义的全局lo来做一下,那么主要是实现我们这两个。接口好,那么跟着杨哥过来,我们手敲一下,那么过来吧,在这儿我们建一个类,那么。假设我们这儿写一个全局日志。Getaway future。OK,同学们,没问题吧,那么只要是在这个包下面,我们要被扫描的到永远记着玩spring boot的开发。首先是。把这些东西注解和配置形成好,那么欧啦。跑到这儿粘贴这两个接口,那么同学们实现它的全部方法来,这个是get order是吗?零。
05:10
那么干嘛呢?它的意思呢,就是这个加载这个过滤器的顺序,一般数字越小,优先级越高,这一波同学们没什么问题吧?那么大家请看,最大的话是不到整数的20亿,4748万什么什么之类的,那么OK,这个数字同学们,我们在前面的写瑞本那个自选所的时候就见过兄弟们没有什么任何问题吧?OK,你看get它的order value of this对象的值的顺序,好,一般我们在全局的,那肯定先第一位,那么现在我们要达到的一个过程呢,就是说你要访问我的时候,我需要含有一个用户名,如果你用户名是我指定的,比方说你能进这个班,班主任就是这个。总的网管你确实在这个班的名单册里面,你进来听课,不是的话。请离开。好。那么下面我们。
06:02
你用这个也行啊,我们这就简单写一个,我就不再用那个洛克音符了,OK,那么在哎也行吧,那么这块的话呢。OK吧,那么同学们你想用哪个都成,那么log点符,那这个时候的话呢,我们呢,直接。抗议我们的全局。过滤器,同学们没有任何问题吧。那么这。加一个最简单的,那么就是你带弟兄们。OK吧?好。那么接下来怎么干呢?那么这这些是我们的SPRING5补吧,5.0以后的,那么这些东西直接用了,不再废话那。Exchange这个对象点get request。听懂有点像得到我们的HTPHTTP的那个requesttp htp request那个对象,好,那么得到我们这个请求参数,第2GET。
07:08
First,我要求你是要带着这么一个u name,这么说,同学们这一波能不能跟上,好简单,Your name,我先全局过来,就是一个班主任,就查同学你叫什么名字啊,好,假设,不好意思啊。UN name等于那。是空的。那么这个时候马上打出去。落个点音符,那么在这我们的用户名为。那。非法用户。好吧。否则的话,那么这个时候我们呢,叫泛型,那么这个泛型很简单,那么这是不是有个线看到没有,那么过滤链,那么。欠。Filter,那么再把我们这次判断通过的这个exchange后面续传下去,那么后面的按照我们的顺序,那么第二个。
08:07
过滤器再进行验证。那么在这我们在。完善一下,比方说exchange。点给他。Response,给人家一个回应。那么这个时候我们要回应一个什么呢?设置我们的HTTP状态码。那么HTTP。Status,那么在这有一个比方说我们就是不被。接受的吧,那么这个是接受,那么自然而然有一个骆驼,我记得是。不被。接受,OK,没错,好,那么这个然后呢,Return,告诉人家你。错是错在哪?切记点get response.that那么这个时候完成退出,这么说不OK,切记啊,一定要加这个,否则你实现这两个接口,否则你写完以后这块。
09:05
也不好使啊,那么这个就是我们的,我们加了个日志啊,那么这个日志的逻辑非常非常简单啊,这个是个顺序,不用管实现两个。接口,那么这两个接口就有一个过滤的,像不像我们的这个web的so的那个接口,然后就过来看看这个用户名,非法用户啊,告诉你。你。不受欢迎,请离开,否则合法用户我放行,那么去下一个filter过滤链进行过滤和验证,层层把关,OK,好,那么这个就是我们的是吧,案例代码,那么写完以后我们要做测试啊,那么下面我们呢,启动一下我们的9527,那么好,同学们重新启动,好,我先暂停录屏听,那么我们的九百二七成功启动,那么再讲一遍这个逻辑啊,不难,很简单的事情啊,就是实现了两个接口,然后用容器注入,那接下来exchange,你可以把它当做就是我们的request那些通道,然后自带了一个过滤器链,只不过现在是用spring这套东西,SPRING0以后替你封装了一些对象,这个像我们MVC里面的这么说能跟上这些都是一些通用的标配的模板,模板代码,那么我们要干的活呢?很简单,就是做了一个总的全局过滤器。需要每次。
10:26
判断带不带着这个u name这样的一个K。带着,并且这个key的值不能是难,否则的话我们就认为是非法用户,请你离开,这么说能跟上好,那么同学们我们做一下测试,启动完成了以后,我们现在是。八零零幺八零零二七零零幺九百二七四个,那么正确的地址,我们是不是应该有这个,那么如果说这个一回车,大家请看我是不是还是LB,那么全局上调用,那么现在如果是u name是张三,那么你只要带着u name就行,我管你这个名字叫什么都OK,那么你看同学们121212没问题吧,但是抱歉你要是这个。
11:09
不带着一回车。不好意思啊,直接就是不让你进来,或者说你也带着呢,但是你这个名字是叫u name asdf,乱一个名字啊,大家看也给你过滤屏蔽掉了,所以说能不能理解我们用自己的代码来写我们业务逻辑,比他的这个常用的getway的自己的那个配置什么30多种没有任何意义,所以说一般我们用过滤器就跟我们so的套路一样,还是用自定义的全局,只需要实现这两个接口就OK,主要网关也就是做全局日志记录,统一网关权限等等,那么这些请同学们漏眼看吧,后台是日志就打出来了,非法用户哭了吧,这个表情包OK。那么所以说这块么,请大家可以按照杨哥的这个模板和参数来写写实,现实直接实行这两个。
12:03
接口即可,好,那么同学们,我们的getaway就给大家介绍到这。
我来说两句