00:00
好,接下来呢,我们来看第四种方式呢,为我们提供了一种组件叫post processor。这个呢,我们称为对应的后置处理器,那么后置处理器的作用呢,它就是在初始化前后,哎进行哎一些咱们这个处理工作,我们来打开这个being post process点进去,哎,它是一个接口。我们有这么一个接口,那么呢,这个接口里边定义的这个方法,我们来看一下,有两个方法,一个叫post process initial。就说呢,按照这个方法的翻译,它是呢,在初始化之前进行后置处理工作,然后呢,接下来还有一个方法叫after initialization,就说呢post process,我们在初始化之后进行一些后置处理工作,那么呢,就把这两个方法放在这。
01:12
描述方法什么时候调用呢?他说S会应用这些后置处理器,什么时候呢?在我们已经创建好这个比应实例,已经给定好这个毕应实例,但是在它之前,什么之前?就是在我们这个比应实例任何初始化方法调用之前,比如我们实现引initialization being after property set,这也算它初始化调用,或者我们自定义的muscle初始化调用,也说在任何初始化调用之前进行工作,诶,它是在初始化之前工作,那么呢,这个after in内收,那还在是我们来看它呢,是啊,什么时候会应用我们这些后置处理器呢?它是在after,也就说呢,我们这些B应的后置处理器的。
02:12
这些初始化方法调用之啊,我们自定义的初始化方法还是实现内ization的after property set等这些方法,在他们这些方法调用之后进行调用,所以说呢,这是在初始化之后工作,那么呢,我们就来写一个这个后置处理器来看一看。好,我在这呢,我们来写一个后置处理器,我们就叫my post processor。我们就来实现咱们这个后置处理器的接口b post process,哎,这是我们这个后置处理器啊,初始化,初始化前后来进行处理,那么呢,我们来实现上这两个方法。
03:05
啊,我们来添加这两方法的时间,一个叫post process for initialization啊,如果它被调用,我们就打印一下。但是呢,它这有两个参数,一个叫being,一个be name,我们来看一下这个being be name是什么呢?这个being就是我们刚才创建的这个实例,容器刚帮我们创建好的实例,还没初始化,初始化之前我们要调用的,所以说呢,这个是刚创建的实例,这个B就是这个实例在容器中的名字,我们就把它打印一下。我来加上咱们这个病的名字。以及我们把这个实例我也打印一下,加上咱们这个B。好,那么呢,这是我们这个post,我们再把这个after,这个after我也照这么一打印好,这是这两个方向打印,那完了还有一个返回值,这个对象返回值是什么呢?我们可以看方法描述说这个返回值呢,它是我们将要返回,我们后来要用的这些并实例,你可以呢,返回一个原来的他原来的这个对象,也就是说传过来的这个对象,就是刚创建出来,你可以直接返回,你也可以把刚传进来的这个对象你包装好以后再返回,那我们就不包装了,我直接把这个B返回出去。
04:33
下面这个方法呢,也一样,也直接给它返回好,那我们这个OS processor我们写好了,那为了能让他工作,我们必须把这些组件都加在容器中,我呢就用这个解and component,哎,将我们这个后置处理器加后置处理器加入,哎加入到容器中,这样的话呢,Spring就能让它工作好,我们来进行一个测试,我们来打开咱们这个测试类。
05:10
我来测试一下咱们这个后置处理器的。工作实际早。诶,我们来看一下,比如说呢,Before after before after,但是呢,我们来看啊,现在这些是spring里边默认的这些组件,哎,这组件在创建的时候呢,它的这个啊创北方after初始化前后我们都能感受到,主要我们来看我们的这个自己写的组件,一个是cat,这个cat呢是我们这个猫,哎猫先调用构造器创建对象,然后呢,接下来是调用北内,也就说初始化之前被调用,接下来呢是猫after proper set,说我们这个猫是实现了being的after property set方法,那么呢,我们这个being post process是在after啊property set之前,我们先能拦截到咱们这个初化之前调用,将来after set初始化之后,那么呢,我们在after。
06:17
Decide前后我们调用包括呢,我们这个DOGDOG呢,我们也一样在dog的post construct,我们这个dog,哎,Dog呢,我们这个初始化我们是用GSR250解,哎,但是呢,我们也同样能在post construct之前我们调用initialization,哎,我们拦截到了这个dog以及它用的这个对象,然后呢,Post construct进行执行,我们在after initialization,哎这样看对象也一样说,每一个对象在它初始化方法调用之前会执行北before initialization和初始化方法调用之后执行after引initialization,即使这些B,哎,我们没有自定义初始化以及呃销毁方法,那我们这些后置处理器也是会执行的,你看像前面这些我们容器里边用的这些啊组件,那么他们在创建的时候呢,初始化。
07:17
前初始化之后也会被执行,这就是我们说的这个后置处理器,它其实工作的时机呢,就在我们初始化之前,之前我们会调用being post process的。咱们这个post process在初始化之后,我们会调用post process。咱们这个post process after initial。
我来说两句