00:00
好,前面呢,我们说了一下being factor post processor和post process,接下来呢,我们说一下扩展原理里边的application listen,那按照这个字面意思呢,它是我们这个应用监定器,也就是spring为我们提供的基于我们这个事件驱动开发的功能,这个监听器呢,它通过监听我们这个容器中发布的一些事件,那么呢,只要这个事件发生来触发监听器的回调,来完成我们这个事件驱动开发,我们可以来测一下它。呃,开listen,它的作用呢,是来监听容器中发布的事件,然后呢,完成咱们这个事件驱动啊模型的开发,那么呢,我们接下来呢,看一下这个,呃,离开呢,点进去,首先呢,它是我们定义的一个接口,我们把这个接口呢可以拿过来。
01:05
这个接口呢,也就是说如果我们要写一个监听器,我们就得写这个接口的实间类,而带的这个泛型就是我们要监听的实践啊,我们都要监听咱们这个application event及其子事件,同说呢,如果我们要发布事件,我们的事件也应该是啊,不离开以问它的这个子类,所以说呢,那现在这是一个监听器接口,那我们来写一个它的实现,来试一下监听器功能走,来创建一个my publication listen,我们的应用监听器,好,我们来实现application listen接口,这个application是我们要监听的时间,好我们就来监听它。来添加未实现的方法,好,这呢有一个方法叫an application event,也就是说呢,当我们这个事件到达以后,这个方法会进行触发,当容器中,容器中发布此事件,此事件以后,咱们这个呢,方法会得到处罚,方法处罚,那么呢,我们就来写一个简单的,我们就来看一下容器中发布的哪些事件啊,收到事件,收到事件。
02:35
事件呢,就是我们这个application event,它会把收到的事件为我们传进来,当然这个东西要工作,我们得把它填在容器中,好,那么接下来呢,我们进行测试。测试我们看能不能收到时间,这个呢是容器,我们容器创建对象,这是容器关闭,那默认呢,如果我们来运行。
03:05
走。我们来看控制台,诶我们会收到两个事件,收到时件,收到时件这两个事件呢,分别是contest refresh的event和contest close event一个呢就是容器已经刷新完成事件,一个呢是容器关闭事件,这个这两个事件呢,也都是我们这个,呃开以问它下边的时间,诶这有容器,容器呢,我们这个刷新完成时间,容器关闭时间,以及容器开始时间和容器停止时间,这两个时间呢啊,我们没默认呢,它没有用,而我们现在呢,只要我们IC容器在容器刷新完成会发布这个时间,容器关闭会发布这个时间,那我们如果要自己发布时间,能不能发布啊,当然也是可以的,所以我们这个要基于事件开发,我们的步骤应该是这样子,步骤第一个我们来先写一个,写一个咱们这个监听器。
04:06
来监听某个事件,当然这个事件必须是application event旗下的啊,不对,开始疑问的,咱们这个下边的及其及其子类,必须这是我们要监听的这个实验,接下来第二个,比如说呢,事件,我们要把这个监听器,监听器还要放在容器中,加入到这样缝才能知道有这么一个监理器,然后呢,接下来以后容器中有事件发布,只要容器中,只要容器中有相应类型的事件发布,有相关事件的发布,哎,我们就能监听到这个事件,那么接下来你看啊,我们。
05:06
刚才监听的两个事件,举个例子,就是我们这个容器的,哎,刷新完成时间,比如举个例子,它是在容器啊,创建完成,创建完成容器,咱们这个刷新完成,刷新完成呢,就是所有B都已经创建,都已经加载好,所有B都完全创建,完全创建以后呢,然后呢,我们进行咱们这个会发布,会发布这个事件,当然这个事件是spring发布的,包括呢,我们这个容器关闭也是咱们这个呢,关闭容器,关闭容器会发布这个事件,S spring默认定义的还有一些事件,当然我们自己也可以写一些自定义事件,那关键是我们自己能不能发布事件呢也可以,那如何发布事件,在这说一下,我们自己来发布一个事件。
06:06
好,发布一个事件,发布一个事件呢,我们需要这么来做,在容器里边,好,这是咱们这个容器,我们拿到这个容器对象直接呢点一个,我们来调它里边来看啊点它里边呢,有一个方法叫public event,哎,发布一个事件,这个事件呢,你就发布application event旗下的,那好我来用一个application event,那为了简单我就先来拗一个application event,只不过这个application event它是一个抽象类,好,我们这是以匿名内部内部类的形式我们拗出来,只不过呢,它拗的时候还要传入一个对象,那为了简单呢,我就直接传一个string就行了。这个string对象呢,就是我发布的时间好,然后呢,这样就发布了一个时间,我们可以来看一下试一试。
07:14
照。哎,我们看到收到事件,这是容器刷新完成,哎,包括收到事件这个事件呢,我们我们是调用application给他发布出去时间,只要我们把这个事件一发布,那正好我们这个Li呢,就能监听到我们这个时间,他就这个方法就会回掉打印,所以说呢,这就是我们这个事件监听器的使用,Application listen呢这个应用监听器的使用,那到底它是怎么工作的呢?哎,我们下一节课来看一下它的原理。
我来说两句