00:00
好,前面呢,我们说了一下这个container initial的机制,接下来呢,我们再来说一下这个containtest用来注册web组件的用法。们来说一下,它使用content注册web组件,这web组件呢,就是我们的三大组件,比如还有咱们这个filter,还有咱们这个,然后说呢,我们是一定会用到这个场景的,如果说以前加注解的方式来注册这个组件,这个前提呢是我们我们自己来写的这些代码,我们可以把注解加上,但如果我们导的第三方炸包,他们里边呢,有一些组件啊,比如大家导的阿里巴巴的连接池里边呢,他们里边的菲或者等等等等,那么这组件呢,如果是以前的web插,我们可以配置在配置文件中,但是呢,我们现在没有了web插,那么呢,我们就可以利用这个solid conest给它注册进来。来我们来说一下这solid conest里边呢,我们把它就叫SSC。
01:13
好,这个里边它有这些方法,比如and filter,添加filter和添加listen,以及添加它有这些方法,那么我们就利用这个方法给它注册一些组件,好们来写一些示例组件,比如我们来写第一个叫user so来写一个它成为SOSO呢,我们还是来继承HTTP,然后呢来写一下它的do get方法。它呢,我们也简单来写,就给浏览器啊,响应一个用户的名字,比如我们就叫他CAD,好,这是一个,我们再来写一个filter,比如呢,我们就叫啊,我们就叫user filter吧。
02:09
User filter。那么要来成为filter,我们需要实现啊,我们提供的filter接口,Filter接口这个接口呢,是我们这个下的,那么这个接口呢,我们有这个方法,初始化方法,还有咱们这个销毁方法,比如这个方法他就是来过滤请求的。这个过滤请求,那么呢,我们就只要他执行了,能给这一块来打印一个这个user filter执行do filter方法。当然我们呢,直接拿到这个filter,我们这个filter链直接给他放行就行了。第二。我把咱们这个放行就行了,放行好,然后呢,我们再来写一个listener。
03:09
比如都叫user,好这个呢我们来实现啊,我们这个监立有很多,我们就来实现咱们这个test listen,那监听啊contest的咱们这个创建启动过程,走这个listen呢,它的作用呢,就是我们来监听项目的启动和停止,那么这有一个叫contest destroy,这还有一个test,这个是来监听,监听咱们这个EST启动。启动初始化,然后呢,那上面这个是来监听咱们con的销毁,也就说我们这个项目的停止,好,那么如果他们执行了,我们还是一样给这里边来打印上这些话,User listen,来我们这个test initial,好,咱们这个user listener。
04:16
来打印这个test,好,这时我们写了三个组件啊,Filter listener和那么呢,我们用这种方式啊,我们直接调的方法来注册组件啊,我们以代码的方式,没有配置文件,我们就来写Java代码,SC点第一个叫and filter。我们呢,绑上源码来看一下这两个变量的提示是什么什么点进来好,我们要把他K7的源码绑定。他们开了七的源码,好,他们开了七,七安装在这,它的源码呢,我放在了下边好点,OK,只要绑定以后呢,我们来调这个方法,好我们先要添加,我们就来先来添加一个吧,添加so,那第一个是咱们这个so名,还有这个类型,这个类型呢,我们传进来会自动的创建对象,包括呢,我们直接可以来自己来创建好对象传进来,那么用哪种东西,比如我们来用第二种来我们这的名字,我们就user,那么来我们就来创建一个用一个user solid对象啊,我们自己把这个对象user对象来创建出来,好,然后呢,它会返回一个咱们这个叫dynamic,也就是说我们这呢,只是给content中添加了这个,但是的那些注册。
05:53
映射信息,我们是也需要配置配置的映射信息,我们这个是来处理什么请求的啊,我们就利用它返回的这个dynamic,哎,它呢有一个方法叫and添加映射,这个映射呢,它就来处理user请求,好,那我们这个我们就注册进来了,与此同理,其他都一样,比如我们这个注册,我们也一样点添加一个咱们这个listen,这个listen呢,我们只需要指定咱们这个class,或者呢,我们自己把listen对象创建进来,传进来,好那么我们就以这种方式,只来用这个类,让我们来创建这是我们这个listener listener的这个注册也就完了,监听器的注册。
06:48
啊,只需要添加到啊对象中就行,然后呢,我们再来说一个注册filter filter和它都有映射,所以说呢,这两个的注册稍微有点特殊,我们添加一个filter,好,我们接下来呢,用这种方式传类型的方式,那么每种方式都试一下,上一种方式呢,我们自己来创建对象,那么如果传类型,那就是我们这个Tom k帮我们来创建这个对象filter name,我们就叫user filter,我们直接来传我们要创建的这个filter的类型,那就user filter.plus好,同样呢,它也会返回一个,这个叫dynamic,这个呢是filter registation里边的dynamic,好,好我把它导进来和咱们这个里边,它呢,其实就是我们这个,哎,我们点过来,这是咱们这个G。
07:49
里边的dynamic。好,我来用它俩把这个倒过来,倒过来,然后呢,我那so呢,会产生这个dynamic对象,Filter也会产生这个对象们呢,啊注意都是这个reg和咱们这个filterg,然后呢,我们给filter里边利用它,我们来添加映射信息,还是在这一步我们来配置filter的。
08:20
的映射信息,好,我们来利用这个filter点,这有一个叫添加map,就是添加映射,比说呢,我们可以自己来写UI映射,也可以来添加,它是来专门来拦截哪些的,在这来指定名,那我们就来用下面的这个,然后呢,这一块呢,先来写第一种,我们这个叫dispat type,相当于我们这个拦截的这个类型,它是通过什么方式过来的请求会进行拦截,这呢有很多forward include request,还有异步的error,这些呢,就跟我们之前的配置一样好。
09:03
我们就来直接用它这一块呢,是要用一个animal set,哎,我们就来用这个animal set,这个set里边呢,有一个方法,哎,我就把它这个。先哎,它有一个方法叫of of里边呢,我们来填一个元素,我们就叫this type点我们就来request请求过来,好,这是原生的,好,剩下的这个is match after就直接来写true,然后这个you pattern就是我们要拦的路径,这个路径呢,我们来写杠芯,那就是来拦截所有请求,这个我们filter的映射信息我们就配好了,然后呢们来启动一下,看我们这配的三个组件有没有起到作用啊,如果起到作用,我们这个filter呢,就会在放行目标请求之前进行打印,如果是listen起作用,Listen呢,这些在创建销毁也会有打印啊,如果是我们这个起作用,那我们发请求啊,我们就能看到咱们这个页面上的打印好来运行。
10:14
现在呢,我们这个服务器运行起来,首先来看listener,因为我们这个是来监听服务器启动停止的,那我们看到了这个listener再运行,哎,T initial初始化了,包括我们这个filter,因为呢,我们来访问首页这个请求呢,它也在运行,好,那我们来发一个们叫拦截user,我来回撤,哎,那我们也运行了,Filter也运行了,包括呢,如果我们停止服务器,我们在服务器这停止。停止,那我们的listener也会鉴定得到,好,我们来稍等一下啊,这个停止。这个服务器我们在这好找到Tom k啊这个服务器呢,在这儿,那我们这个listen的这个消费方法也打印了,所以呢,我们就是通过这种方式,哎,通过这种方式。
11:09
直接在项目启动的过程中,哎,项目启动的时候给里边来添加这三个组件,这个用编码的方式,使用编码的方式在项目启动的时候,启动的时候给咱们这个solid contest里边,给当前项目里边相当于添加组件,当然这个组件的添加呢,不是说你只要拿到这个solid content对象你就能添加的,它必须是在项目启动的时候,必须在项目启动的时候来添加,那么这个项目启动的时候呢,其实我们可以在两处来用这个东西,第一处就是我们利用这个机制,哎,Solid container initialize,我们利用它得到的contain对象,我们给它里边注册B,然后呢,包括我们用它我。
12:09
这不是有一个listener吗?他来监听项目来启动,项目启动呢,有咱们这个事件对象,这事件对象里边呢,我们能拿到EST对象,在这也能用,当也只有这两处呢,我们可以来注册组件,那在运行时的时候,你再给这个里边来注册组件,那是不行的,当然这是出于安全考虑,好大家注意一下啊,第二种就是我们这个。这个得到的咱们这个组件,好,这就是我们以编码的方式给对象中注册我们web的三大组件。
我来说两句