00:02
OK,来,接下来我们再来说,还是给大家去解释啊,解释什么呢?解释一下我们刚刚在hello word程序里面写的时候用到的一个IOC容器对象。啊啊,那么在解释它之前呢,我们先来看一下我们这个文档里面啊,给大家去说到了一个IOC容器在我们这个破中的一个实现啊,这个大家一定要把它记清楚了啊,这个比较重要,我们来看,呃,其实注意了,首先啊,你如果说想通过这个LC容器去读取一个B的对象,那么首先你要先把IOC容器本身这个对象先给它创建出来,也就意味着我们刚刚写的这样一行代码就是来创建LC本身的这个容器对象的,听懂了吧,把它创建出来以后,我们才有资格去获取对容器对象里面的。并对下OK啊,那么接下来我们就来说这个LC容器,在这个里面,其实LC容器呢,有两种啊,有两种,第一种叫做b factory,大家注意什么意思啊。
01:10
病的一个工厂吧,是并工厂吧,对吧,翻译过来就叫做并工厂吧,对吧,那么这个其实也就是我给大家去说的loc呢,最底层其实就是一个工厂。好,那么大家要注意了,这个并发水是我们IOC容器整个结构最顶层的那个接口,也就意味着坡里面的这个LC怎么实现的呢?最顶层是一个并factory,然后呢,在这个基础之上,然后呢再去做各种各样的实现,这是最顶层的那个接口,那么它是LC容器的一个基本实现。然后另外一个需要注意的是,它是破内部的一个基础设施,也就意味着它是面向我们spring框架本身的,而不是提供给开发人员去使用的,也就意味着这个并factory就是我们IOC容器的一个基础设施,它是面向框架本身的,我们要用的话不用它,那么我用谁啊?我们用的是在并factor的基础之上扩展出来的,叫做application context,它是并factor的一个子接口,提供了更多高。
02:24
不级的一些特性,它是面向框架的使用者的。明白了吧?那么对于我们这个开发人员来讲,我们所有的场合都要去使用application,而不是底层的factory。能听明白这个意思吧,而不是用它底层的这个并发啊,这个大家一定要记住了,好吧,那我们就来看一下它整个的这个结构,那么怎么看到我们回到我们的开发工具中,我们就c shift t这些大家用过没有?Open用过没有,没用过是吧,我再告诉你啊,摁住CTRL键,按住shift键,再摁住这个T啊,就能打开这个窗口了,这个东西有啥用呢?可以帮我们去找你想要看的那个类,比如说现在我想看b function,那你就输入b factor,它就能帮你检索出来所有与b factor相关的,那么其中第一个就是不是第一个啊。
03:21
第二个并factor就是一个接口,然后它是我们里面的,看到没有,OK,那么现在我们就进去。啊,进来以后呢,现在我们是看不到这个源代码的哈,但是呢,人家是开源的,我们就可以啊把源代码加进来,怎么加呢?人家已经提示你了,说在这个价包下面是有我们的什么呀,并发出这个类的,因此我们要把这个价包给人家加进来,注意添加source啊,然后呢,选择我们的外部的一个什么路径啊,外部的一个路径来去浏览,浏览谁呢,浏览到我们的。
04:03
这个破里面是不是这个位置啊,破里面资料里面的第一个开发包,开发包里面我们解压出来这个力下面注意他让我们找的是谁呀?是一个叫做什么叫做bes的包吧,对吧?那么你在这里面去找bes是他吗?不是而是啊,Source源码包,所以说这个时候我们加的是BS的这个source源码,OK,选中打开,打开以后呢,我们点击OK,那么它就把源码给你加进来了,看到了吧,加进来以后的话,我们往下翻,我们就找到看一下它确实是一个接口,而在这个接口上面还有别的东西吗?有没有啊,没那么有的话,你在这地方你得体现出来,你得去继承嘛,是不是啊,它没有做任何继承,说明它就是一个顶层接口啊,我们在这个上面呢,再教大家一个快捷键叫做什么呀,CTRLT就能把当前这个类所有的一个结构,它的子实线给你列到这儿,那么大家来看看吧,这是最顶层的并发准,然后在这个接口下面呢,你看看有多少个。
05:12
又有接口,又有抽象类,又有具体的时现是特别多呀,对不对,但是我们不需要记住每一个,我们只需要记住最长的。来我给你说,首先在并factory这个下面,我们有一个叫做application contact这个子接口,你看一下是不是去继承了这个东西啊,从结构上来看,这就是一个子,这就是一个父吗?能看出来的吧?能看出来这个结构吗?没问题是吧?然后呢,在它下面呢,还有一个叫做卡RI application contact,这个也是我们需要关心的,然后一直往下看,我们有抽象类,抽象类抽象类抽象类,最终到这有两个具体的时间类,看到没有,看到了吧?OK,来我给你解释,首先这个是面向框架本身的,这个application contact面向我们使用者的,但是呢,它是一个接口,我们要具体用的话,应该用的是这两个实现类。其中有一个可。
06:12
Pass,这就是我们刚刚用过的。对不对?诶刚刚我们写过的,那么它是什么意思呢?注意,它是从我们的类路径下面去找一个XM文件,然后呢,创建出一个LC容器对象,而这个file system呢,它是从我们的文件系统下面去找一个X文件,并创建出一个LC容器对象,这是他们最本质的区别。那另外什么意思吧?OK,那再来给大家解释一下,那什么是类路径,什么是文件系统呢?那你就看当前我代码是在这个位置,我的配置文件就在src下面,那么这个下面就是我们的类路径,这个大家知道吗?嗯。这个知道吧,好怎么看呢?注意我再教会你一个啊,你在这个位置去搜索一个叫做navigator。
07:09
好navi啊,就是什么navigator看到没有好打开这个navigator是不是打开到这了,打开以后呢,注意你找到你这个零幺,然后呢,这个下面有个BB就是我们编译完以后的嘛,其实这个B就是我们那个类路径。听懂了吧,那么你就能看到在B下面是不是直接就能看到我们的这个配置文件的,而且你要注意的是,你在这个下面,在这个视图下面,你看到了这个src这一堆东西,在我们编译完以后是不存在的,看到没有,有src吗?B下面有吗?没有,那么它直接就出现了,就是你的包包包包,然后呢,内看到了吧,以及你的配置文件,所以说呢,哎,这才是我们的内路径,那么我们对照过来,在这个位置来讲,其实src下面这就是我们的内路径。
08:04
明白这个意思了吗?能听懂,能听懂了吧?OK,那么刚才我们好稍等一下啊。啊,来继续啊,那那刚才我们所说到的这个叫做什么呀?Class pass,它就是从我们的类路径下面去读取一个XL文件的。能理解了吧,那也就意味着我就可以通过它去读到我们的这个配置文件,是不是也就能创建出我的一个LC容器对象了?好,另外一个大家再来看有一个叫做什么叫做file system,这个东西它是从文件系统下面读的啊,这个我们用的比较少了,啥叫做文件系统呢?比如说你把你的这个配置文件呢,你放到你的C盘下面,或者D盘下面或E盘下面,那么像这种的话呢,你就可以使用我们的file system它去读了,听明白了吧,但是基本上我们的配置文件呢,都在谁下面啊,都在我们的类路径下面,因此呢,我们用的最多的就是我们的class pass X用的是它明白这个意思了吧?啊,那么除了它之外的话呢,还需要给大家解释一个,就是我们的con application contact,它是我们application contact的一个直接口。
09:38
为什么要提到它呢?因为在它里面帮我们额外的提供出了几个方法,一个是refresh方法,一个是close方法,带着你去看一下哈,那么首先我们先点到这个里面,点进来以后呢,大家注意你可以不加源码啊,但是呢,你需要把一个outline给它打开。好,打开以后呢,我们就能看到当前我这个类里面的所有的常量方法等等一些是都列到开了,其中我们就能看到在这个类下面呢,有一个叫做refresh,有一个叫做close这个方法,看到没有,这个是我们这个接,这两个方法是什么呀?是这个接口帮我们扩展出来的,那么为什么要提到它呢?因为我们在后续的课程中,我们会用到close这个方法,或者说re这个方法,因此大家要注意,如果说将来你想使用到这个方法,那么你最起码你得是一个configuable application contact的这个类型的一个容器,那么你才能用到这两个方法。
10:42
明白了吧,但是好消息是啥呢?好消息就是我们刚刚所看到的,像我们的谁呀,像我们这个class pass file system,你看他们是不是都是属于这个接口下面的食材类啊。对吧,也就意味着这两个容器呢,已经带了那个close以及就是那个功能了。
11:03
听明白了吧,OK,这个大家一定要注意好,所以说呢,在这个整个里面,我们最常用的是谁呢?最常用的be factor,这个是我们必须要了解的,另外一个applicationg,再一个另外两个就是我们具体的事项类。好,这是我们最常有的,那么除了这几个之外的话,再来给大家去提到一个啊,谁呢?Web applicationg架S这个东西现在我们见不到它啊,就是你从那个整个体系里面你看不到它,为什么呢?因为我们没有把它加进来,它是等到我们在讲这个spring mvc的时候,就是我们有了外部环境以后,我们就会用到它了,而现在我们并没有把我们的外部环境加进来,所以说呢,你现在是看不到它的,但是你得知道有这么个东西。听清楚了吧,OK,说错了,等我们再去讲这个point fvc的时候,有了外部环境以后,我们用的容器对象就是一个web application这个类型的一个容器对象啊,所以说整个我们从要给大家讲的就是你看看哈,首先第一个application,第二个application,第三个外部application,那么除了这几个你看了啊,在这个application里面呢,我们有两个重要的食材类,也给大家这么去列到这了。
12:24
看到了吧,哎,也给到这了,列到这了,然后像刚刚说过的,它扩展出来这个方法啊,也给大家列到这。好,除了这几个之外的话呢,最底层的就是我们的一个big factor啊,这就是我们LC容器,它整个的一个结构,大家必须要了解,刚刚我提到的这几个必须得掌握。听明白了吧?OK,好,这是我们LC容器的一个结构。
我来说两句