00:00
嗯呃,在学习这个方法之前的话,我们来看一下这个方法名吧。它叫做哎,In work并factory possible. 在这来。当然这里加了个S啊,S读的是负数对不对,也就是说在执行啊,我们当前这个spring逻辑当中所有的b factor possible process啊这样的啊,这个S代表负数,我刚刚强调过。呃,那么这里面首首首先要解释一个问题,什么是并factory process process啊把它,呃,当然我们中文里面的翻译的话,就是很多圈内就是我们业内人把它称之为一个叫做并工厂的后置处理器,就是并factory的一个possible possible翻译过来就是后置处理器嘛,那么什么是并factory的后置处理器呢?呃,一言盖之吧,就是简单一点理解的话,就是我们的整个spring容器里面包含了一个叫个factory,对不对啊,如果你现在不理解什么是并factor,或者不理解什么是spring容器呢?没关系,你就把这个并factory理解为我们整个spring容器,那么我们可以理解为这个就是容器的后置处理器,那么什么叫做容器后置理器呢?也就是说我们来看整个这个spring的运行流程啊啊,你仔细看一下是这样子的,就是我们这边来实例化十分容器啊,然后调用这个这两个方法,我们先不用去管,先给他注册掉就可以,等下再把它开启啊,然后你就注册了一个配置类,因为你要去呃运行spring肯定需要一个配置类,对不对,你的一些呃基本的信息,比如你扫描的包的路径,都是在这个里面去进行的一些简单的一些配置啊,好给了给到他这个类之后的话,调用replace方法开始来。
01:21
实例初始化,当然这里面两个名词,一个叫实例化,就是把它溜出来啊,然后的话,接下来是初始化,就是对它进行嗯一些初始化工作嘛,比如说我们整个思维容器要去实地化,所有的病对不对,那么都会在这个Fla方法里面完成的,我们来看Le方法,方法过来的话,首先是做一些准备工作啊,当他准备完了之后的话,他就执行这个e work并port测是就是用要来怎么样呢?执行我们当前这个十分容当中所有的呃,容器的后置处理器,那么它为什么叫容器后置处理器呢?就是说。你仔细体会一下来,现在容器已经,呃,就是我们刚刚看到的容器已经被实例化了,就第一句代码6还有没有印象来在这里溜了,实例化了,然后他要去做一些初始化这些,比如他下面要去干很多事情对不对?比如要做一些国际化啊,做一些监听啊,做一些什么对我们一些非懒家非呃懒家载的单利,并进行一些初始化了,或者你们听通经常通常听到什么自动注入啊,什么循环一赖等等之类,他要做这些事情对不对,他要在做这这些事情之前的话,他要去进行一个后置处理,那么什么叫后置处理,就是他要去呃呃,比如说我们程序员可能会对我们这个容器做一些全局的一些设置,那么这些就是这个意思,所以说简而言之的话,你可以理解为什么叫做并factory possible测试,什么叫做呃,并工厂的或者处理器,就是对并工厂去做一些全局的一些设定,呃可以去呃,呃去怎么样呢?去呃干扰或者去干预我们这个容器初始化的一些行为。
02:45
啊,那这个怎么理解呢?我给你举个简单的比方,好比说我们这里有个类了,叫做X类,这个X类呢,Component component, 它肯定能够被扫描到,因为我这里有个配置类了。呃,能够扫描到这个并DEF的这个啊包我下面到,也就是我们这个包来number a这个X肯定能扫描到,这个X默认肯定是单立的对吧?呃,如果我们不加干预spring容器的情况下,你去实例化就就是spring容器他自己去实例化,然后自己去,呃完成这些病毒,呃初始化之后的话,那么他这个X就是一个单利比,我们可以来进行一个验证,我这里写的一个测试方法,呃,嗯,实例化整个识别容器啊。
03:25
先把这个给它注释掉过来。Replace方法,然后我调用了两遍get变X,那么这个X的构造方法呢,应该只会打印一遍,我们来看一下是不是啊跑一下,因为它就是个单立的嘛。咱这个X就打印一个,这句话不用关心啊,这句话是因为我在这个配置里当中加了这个Z啊,呃,这个等一下再来说吧,那么这现在呢,我来大家可以看到我们整个十分容器它的一个实例化并的一个流程,在这个re Fla方法当中,也就是他是在这行代码去对我们X进行一个实例化的,这里我就不加去验证了,我相信很多同学都已经知道了,如果你不知道也没关系啊,我们后面我反正这个文章我会继续更新,也可以接着往下看就可以了,总之我告诉你这个X在这个地方去,呃实例化了,那么在实例化之前的话,这里有个叫一个和并possible,就是它就是用来怎么样呢?执行当前spring当容器当中所有的后置处理器,我刚刚解释过,后置处理器就是能够对我们整个容器进行一些全局性的一些设定,那么呢,呃,这些并impossible也是这些处理器的话,它其实分两种,第一种呢,就是spring内置的,第二种呢,就是我们呃程序员提供的,那么spring内置的我们可能没法去怎么进行一些定制化的开发,但是我们可以怎么样,我们程序员可以提供一些,然后呢,让去执行去怎么对我们农器进。
04:39
细节全局设定,那么我们自己怎么提供呢?其实很简单,大家可以看到直接用这种API方式就可以提供,我通过这个contact的容器,在他实例化之前,在是执行replace方法之前,我添加了一个什么样来着?Test并possible,我们点开它,它是不是一个并possible,也就是说他就是一个呃叫做呃,呃叫做并工厂的后置处理器,或者叫容器的后置处理器。那么我们刚才也解释过这个类,它主要是能够对我们整个一些呃配容器进行一些全局设定,那么它可以做哪些全局设定呢?我给大家演示一下,比如说我现在就可以把这个X从这个呃东西当中把它拿出来,把从这个并map当中把它拿出来,然后对这个X进行一个修改,把它的呃作用欲修改成为一个proloto tap就是一个圆形的,那么这个时候我们这个时候再来跑啊。
05:24
嗯,当然了,这个类它是没有生效的,我们要让它生效,那这行代码已经去掉注射它就生效了,那这个时候再跑的话,你会发现我们的X就会实例化两遍,你get他两遍的话,它会打印两遍构造方法,好,那这就是能够在我们怎么样呢?啊,我们容器在实例化并之前的话,你可以通过这种并factory possible测试,也就是这种容器后置处理器,对容器里面做一些全局的设定,或者针对某个病去做一些设定,那么都是可以的,我们刚刚是针对的某个病,接下来我们针对全局做一些设定,那么什么叫全局呢?各位同学来看这里有一个B啊,叫做A啊,这个A当中的话,注入了一个B了,Set b吧,好,这里有一个B了,这个没有问题吧,就是自动注入嘛,你这里提供了set b对不对,但是我们接下来把这个代码给它进行一些修改啊,把这个地方先给它注释掉,把下面的开启起来。
06:12
那么我们同样看到在回是不是回调这个方法之前的话,他肯定是没有实例化这个A的,那么我们现在对整个容器做一个全局设定,做一个全部全局设定呢,我想让所有的病在遇到自动注入这个B的时候把它忽略掉,也就是说你看到了,我先把A拿出来了,这个是A嘛,当然这个时候拿出来的A并不是一个病啊,它是一个b defin, 什么是b defin, 我等一下会跟大家解释一下,好吧,大家先不用着急,先把这个A拿出来,拿出来这个A之后的话,我来就是给这个A呢设置一个什么out view model就是。呃,他呢?呃,它的自动注入模型改成了什么呢?改成了by type, 这个什么意思呢?呃。大家可以看到的这个A当中注入了一个B,但是这个A呢,现在是手动注入,也就是这个B呢,它是不会注入的。
07:03
你不相信我把这张代码,把这张代码来给你注释掉,来,我把这些代码全部给你注释掉。我们现在在跑的话,你会发现这个A当中的这个set b方法,这个B杠它是不会打印的,这说明这个set b方法没有调用,我这里解释一下它为什么没有调用啊,就是因为我们这个A它是手动注入模式,你虽然里面有一个B,你提供了set b方法,那么spring它是不会帮你注入的,因为你不是自动注入,只有自动注入的情况下才会怎么样呢?十分会去判断,诶你这里有一个属性,有一个赛载方法,那么我就帮你注入进来,对吧?好,那么接下来呢,我们把这个A的注入模型的改成自动注入来,这样子,那么这个时候呢,我们这个B呢就能够注入了,我们可以看到等一下会打印一个B杠的这么一个对象。我可以看到是不是就是这个把这个B注入进来的嘛,好这个这是这行代码的意思,那么接下来呢,我们对整个容器进行一个全局设定,怎么来设定呢?凡是遇到了自动注入是B的,你看到吧,这个并eagle depends type, 也就是说他要去忽略这个什么样呢?依赖的类型,只要是B,那么我就给他忽略,也是不会注入了,好我们这个时候再跑来跑一下,那么呢,他就不会打印这个B杠了,也就是说呢,我们spring在发掘实例化这个A的时候呢,他发掘这个A当中注入了一个B,那么他本身就是需要去完成自动注入的,然后呢,由于呢,你对这个容器做了一些全局设定,你设定了无论是水注意啊,我们这个地方只是说把B的模型改成自动注入啊。
08:26
跟这个把这个A的模型改成了自动注入啊,下面这个是不是针对A的,它是针对所有的,就是你无论什么类,只要你需要想注入B。那么我就给你忽略掉,你是自动注入的话啊,我就帮你忽略掉了,这样子啊,啊,那么这个是不是起到作用了,所以说现在大家要理解什么是be factory, 嗯,Possible process be factory possible能够做的事情非常非常多,我们这节课并不会来讲这个be factory能够干什么啊,我们主要是来讲这个方法,以我和be factory possible的一个方法,只不过在讲那个方法之前,我先解释一下什么是并factory possible, 就是你就记住一个,记住一句话,它就是我们的什么叫做并工厂的后置处理器,那么什么叫并in工厂的后置处理器,就是在我们并工厂实例化之后,实例化之后啊,那么呢,我们可以对他进行一些全局化的一些设置,或者一些个性的一些什么样的一些设置,那我们的并工厂的更加的怎么样呢?个性化这个意思啊。
09:20
行,那么我们把这个录屏停一下。
我来说两句