00:00
在刚才的内容中呢,我们讲到了IOC的基本概念,还有它的底层原理,它的原理中主要用到了工厂模式实现里边的制备过程,然后咱们下面继续来介绍IOC的原理。那咱们下面介绍什么呢?在LC里边呢,有一个重要的一个接口,那下面呢,给大家来介绍里边的接口,那这是什么?给各位具体说一下,咱们在最早介绍IOC的时候和一直强调IOC呢是个什么?是一个叫容器,就是IOC的思想中必须要基于这种容器来完成,其实容器本质上就是什么呢?咱们讲到就是咱说这个对象工厂在里边它可以读取配置文件,然后通过它用反射创建对象,它本质上就是一个工厂。那各位在里边写一下这个写到IOC的这种思想。
01:00
它要基于我们这种IOC的容器来进行完成。而这个OC的容器。刚才提到它本质上或者说它最底层就是咱们说这个对象的工厂,而这个过程它是怎么实现的,我们刚才给各位应该也讲到了,就是里边的这么一个过程,所以这句话各位记住,咱们提到的loc容器底层,或者说本质上就是我们说这个对象工厂,这是第一句话,要各位记住,然后第二部分我们继续来说,就是现在呢,我们要用到这个LC容器,或者你要用到这个工厂,那工厂是不是要进行实例化呀?所以里边对这个L7LC容器的实现,给我们提供了两种方式。那我写一下。齿轮里边它提供了这么IOC的,这么容器的。
02:01
实现的两种方式。那两种方式是什么?给各位分别介绍一下,也就是两个重要的接口。那两个接口中咱看一下,首先里边有第一个接口,这接口名字就叫做b factory。这是第一个。我先写出来,然后分别解释,然后在里边还有第二个接口,这接口咱们在刚才用到过,就这个东西叫application context,给各位角这位置。Obligation。Contexttest,这是两个重要的接口,那两个接口什么意思?给各位分别解释一下。咱首先看第一个接口叫b factory,我这里强调这两个接口的作用相似,它们都能实现加载配置文件,然后通过工厂这种过程去创建对象,比如说这位置你可以写我们之前的我们contest,或者说也可以写我们的这个接口叫b factor都可以,比如现在我改一个叫B。
03:13
Factor。然后咱给它拿过来,我把这个方法咱们再来执行,咱们看一下,我换成叫b factor之后,它的特点大家看是不是一样的,比如这位置你加application加b factory都可以,就是它们的功能相似,那两个肯定是有区别的,再看第一个叫做b factory,我这里强调这个东西呢,是我们LC容器里边的那个最基本的一种实现方式,也就是说呢,它是死文里边啊内置的一种方式,是它本身自己用的这个接口,一般我们开发中不去使用,因为它是死纹里边自带的一种东西,我写一下啊,它是。此份里边一个内部的这么一个使用的一个接口,它一般是在内部中用,一般就是不提供给我们这些开发人员进行使用啊,当然你也可以用,只是他一般是由它内部进行使用的,这是。
04:20
第一个接口。而这个接口中呢,有个特点,这特点咱一块说你也知道这句话,然后里边有第二个接口叫vacation contest,这接口怎么理解,大家可以这么理解,它是b factory这个接口的一个什么子接口,就是它是子接口,这个接口中比b factory就是提供了更多更强大的这些功能。就是它比这个B功能更加强大,而这个接口一般是面向我们这个开发人员进行使用的。就是一般是由开发人员经行使用的,而几乎在我们实际中都是用application contact是要我们这操作般不用b fairy,但是be fair功能也可以做到,这是两个主要的接口,一个叫b fairy,一个叫contact,他们都能进行IOC容器实践,也就说他们的作用都可以去加载配置文件,然后创建这个对象,这位置你可以写b fairy,也可以写OB con功能都可以做到。
05:31
这是咱们说的两接口,但是两接口也有它们的区别的,给大家写一下啊,首先大家看这个并筛,我这里强调。就是b factory啊有个特点,它这特点是什么呢?也就是我们在加载配置文件的时候,这个时候如果说你这个位置啊,改成叫b factory,比如咱改成它,那我强调这个时候呢,你用它,它不会把你里边的对象创建,只会加载配置文件,当你在获取的时候,它采取创建对象,这个叫BFA,我强调比如它的特点就是咱们加载配置文件的时候,它不会去创建里边的这些对象。
06:19
他不会创业,而是你在。获取或者说使用的时候,他才去创建我们的这个就是对象,我写一下啊。就是加载配置文件的时候,它不会取创建对象,而我们在获取对象,或者说你去使用对象的时候,他才去创建这个对象,什么意思呢?大家看啊,咱们看我们。之前写的代码就是它在这一步的时候只是去加载配置文件里边,就算你有这个配置,它不会把对象创建,而大家看这一步,这一步咱是不是要获取对象,所以他在这一步的时候采去创建对象,也就说你什么时候用的时候,那他什么时候才去创建对象,这个是b fair一个特点,各位把这知道。
07:15
而咱们再看medication context,这跟b factory完全不一样,它是不是创业,就是你在加载配置文件的时候,它就会。怎么样把你?在配置文件中那个对象进行创建,也就说如果说这位置你换成了叫application contact,那它是什么特点?当你做第一步的时候,只要你这里边有这些对象Y你配置多少,只要你做了BID卡这个配置,他把这个对象都能完成创建,这个就是application context,两个是不一样的,B factor在用的时候才创建APPLICATION1加载配置文件进行创建,这是两个不同特点。
08:04
但是大家可以考虑一下啊,咱们在实际中,各位说用哪种方式更好一点呢。大家可以想一下哪种方式更好。我觉得有同学肯定会想,第一种方式最好,因为我们用的时候在创建是不是可以节约资源,这么想没有错,当然各位注意啊,因为咱们用的是四种框架,咱们一般来讲这四种框架要结合咱们的外部项目进行操作,也就是通俗讲咱们用到我们的通CA进行启动,所以咱们一般来讲啊,把这种耗时耗资源的操作都在我们项目启动的时候进行处理,是不是更合适,也就是说我服务器启动,在启动过程中就去创建这个对象,而不是说你什么时候用,是不是创建,所以咱们一般在操作中用第二种方式,我当服务器启动,我怎么实现服务器启动,让他就去执行这个代码,去加载配置文件,然后把创建对象过程都在服务器请收完成,而不是在你操作中完成,把这个耗时耗资源的过程都交给服务器去做到咱们直接用就可以了。所以咱。
09:14
麦,这是两个重要的接口,Be fair,还有context,各位知道它们的作用以及它们不同的特点。这个啊,我们做了一个介绍,然后介绍之后咱继续往下来看啊,第三部分,因为咱们提到application contextt是不是一个接口,所以这个接口里边它有一些主要的实现类,那我最后把里面一些实现类给大家做个介绍。然后咱们看啊,咱们之前写代码中是不是用了一个实验类啊,其实里边还有其他实验类,我给各位都做个介绍,那怎么介绍,咱们现在把这个类的结构打开,就是CTRLH打开,大家看啊,在里边。
10:00
这是它的接口,然后在接口中呢,有它对应的不同的实现类,各位看到。这两个你看啊,前面有一个标志叫C,是不是它的类,这两个是它主要的事现类,一个叫fair system,一个叫class pass,两个不同的实验类,而两实验类有什么特点,给各位来说一下啊。我把这个图给各位截一下。咱们里边有这么两个主要的实现类啊,就这么两个。我把它截过来,各位知道啊,而两类什么意思呢?就是咱们通过这个类的这个单词就能看到它的特点,大家看第一个啊,叫file system。这什么意思?比如说你现在这位置呢,你可以写叫那个file system这个实验类,它的特点就是就是说你现在要用它的话,这位置要写上你配置文件的在你系统那个盘里边路径,比如说它我们这个文件在我的C盘,包括这个路径,比如我现在在C盘什么文件夹下的这个文件,那你把它的带盘符路径写出来,但如果你写的这个类用的是classs pass,它表示类路径,比如说你在src里边内容,我现在这B1是不是在src下,最后直接写这个文件名字,这是对应你不同位置的文件,我再说一遍,Class pass,就src下类路径,如果你加一个file system,那就是你那个对应的盘里边,比如你C盘下边的某个文件,把文件的全路径给他要写过来,这是两个主要的实现类。
11:45
各位把这个给它知道,然后这里边咱们看完它之后,我们再看一个内容,咱们看这个叫b factory,它这个结构,我把这个CTRLH咱打开啊,这是一个完整的结构,大家看里面有这么多东西,然后在里边,比如现在我把它打开,咱们在里边啊,再找到这么一个东西。
12:10
我们再找到啊,咱们看一下。这是咱们刚才看过的里边一些内容,然后大家看啊,首先这里边我们看到这绿色部分是它里边对应的一些相应的接口,然后这里边蓝色部分是不是它那个对应的一些实线类,咱们刚才已经说过了,里边的这么两个时间类。啊,咱再找到啊,就是里边的。这么两个对应的实验内。看到刚才那个在应该是啊,不是这里边是application contact中的这么一个实验类啊,咱们刚才看过了,在里边有它对应的这么一个内容啊,咱们继续看,刚才都看过了啊,然后这里边呢,看完它之后呢,咱们再看个东西啊,大家往下看,找到应该是在啊,就这位置,各位看啊,这是接口是不是子接口,然后下面还有子接口这个接口。
13:08
叫做conigguable application context这个接口是b fe下面一个子接口,就是这个接口中,它里边我们可以包含一些相关的扩展功能等等一些内容,大家对它有个了解啊,所以这也是关于我们说的b fairy里边这些相关的一些。子接口,包括里边一些对应的视线类,各位把这几个给的记住。就是我刚才提到的再重复一遍,IOC呢是基于容器完成的,然后它的底层就是一个对象工厂。另外IOC容器有两种实验方式,就是两个接口,一个叫b fair,一个叫application contextt b fair就是你在加载配文件的时候,我创建对象,当你用的时候才创建application,加载文件时候进行进行创建。另外application contact接口中有很多实验类。
14:05
包括在这里边有两个,一个是fair system,一个是class pass,各位把这个知道,另外be fair有它一个基本的这么一个结构,所以咱们现在就把loc里边这个接口给各位做了一个介绍,各位把这几个给他要牢牢记住,咱们把它就做了一个说明。
我来说两句