00:00
啊,那我这来举个例子啊,找到零二,零二呢,打开一下我们的包,再来一个新的package,我叫做BA06。零六里边呢,我们看看把零五中这两类吧,考到零六之中。打开我们的零六中死掉段中这个就去掉了啊,用一个就够用了,三二这个也不需要了。这个呢也不需要好,这样呢我们就可以了。这个不需要删掉它。好,那现在我们这儿有。Name age和school set name set age,还有一个是set school,配置文件,再考一个零五,拷贝成零六,打开我们的零六,把这个注释什么的删一删,这就不要了。
01:01
啊。然后这个也不要了。啊。八名呢,先改成零六的。上面这个也是零六的啊。测试类再考一个。这个是零六,打开我们的零六。打开零六,先把导入的包名改成零六的。配置文件零六目录下的,先把程序跑起来,先证明呢,这个代码是正确的。代码是正确的。我们的。学生子固都是创建好了,复制也成功了,那现在。在这个零六中是一个配置文件,我现在呢,把它变成多个配置的方式。那我现在这么做,首先我把这个文件呢,给它CTRLCCTRL为复制一下名字,我叫做spring student,我准备呢用这个文件来表示,这是学生模块的,我们就当做呢,当前项目中有两模块,一个呢代表的是学生模块,一个代表是学校模块,两模块那我当前这个模块呢,就代表是学生的这个模块的所有病的声明。
02:29
打开spring student,这里边我们说这个是student,这是模块所有病的声明,这是我们的学生模块所有病的声明。那这里边儿呢,死就的模块是包含所有跟学生有关的病,那么其他病就不应该写在这里边了,那我们就应该把我们的这个school干掉。
03:02
当前模块只保留和这个模块紧密相关的类的声明,那这里就是学生类,其他我都不动啊好,年龄呢,改成一个30吧,好。然后我在拷贝。再拷贝一个这个我起个名字叫做school,这是学校模块并的声明,这是故模块所有病的声明,它是死故此库这个模块的配置文件。那把其他的都删掉了,把school干掉,只保留是我们这个school学校呢,我们换一个。换一个航空大学好放在这儿,其他我都不动。
04:01
那现在我们程序中这有两个配置文件了,然contexttest呢,我也改个名字吧,Shift加f live。名字我叫做total,你头头改个名字打开之后,那这个文件里边它起什么作用呢?首先第一步我把里边两个B都干掉,都不要。我来说这个文件我们做什么,这里边spring它是来表示。表示这个主文件啊,主配置文件。那这个主配置文件呢,它是用来呢,包含包含它包含呢,其他的配置文件的,那这张主文件呢,它一般是不定义对象的,这张主配置文件它一般是不定义对象的。
05:05
它只用来包含其他的配置文件的,这是它的作用,主文件是包含其他文件的啊,它一般是不定义对象的,那怎么包含呢?我们这儿给大家用一个标签,这个标签呢,叫做import语法,我们使用叫做import resource,后面里边的内容呢,是其他配置文件的路径。这就行了,把它包含进来。在使用这个result的时候,我们有个关键字啊,这里有个关键字,这个关键字呢会一直用,它叫做class pass冒号,这是完整的关键词啊,Class pass冒号它来表示类路径,表示类路径。
06:02
类路径什么叫类路径呢?也就是你类文件也是class文件它所在的目录,这叫做类文件。我们在什么地方要用这个pass呢?我们的规定啊,或者说我们的经验是这样的,那就是说你在配置文件中要指定其他文件的位置,那你就需要使用class pass告诉。到哪儿去加载读取文件?就这么个意思。啊,我这个画下蛤蟆有点长是不是。这样吧,能好一点,那就是说你在这个文件里边想要去指定其他文件路径,你就需要用pass。
07:10
你得告诉我,要到这个路径下去加载读取这个文件,这叫class pass。那在我们的idea中,这个pass指是谁呢?指的是他给的目录,像这个classes。就是这个。为什么说它叫类路径呢?因为在这个路径下面是有你的包。包里面不有你的类吗?看这这是不是你的类啊,那说明你的类从包开始的,这个路径是不是都在classes的下面呢?这是你的类文件,类文件所在的目录叫做类路径,所以那你这个classes当然就类容的根了。这些配置文件都是在这个类路径的根下面吧,所以你就告诉到这个class下面去找这些配置文件,这叫类如件class pass好。
08:09
这是我们的。知识点啊,它讲完了,那怎么用呢?看一下,那现在我们要使用inport import result。这里用class pass用下边的就行了,在哪呢?从这个class下面来指那个路径,那首先那我们要整出B点零六下面的。哎,应该是我们新建是哪个来的这啊零六。它下面这你看是不是有一个。School spring调呢,应该是在零六路径之下,所以呢,它应该是BA06的下面spring一个叫school是这样,就这一个,然后resource拉,Pass ba06b。
09:04
BA06BA啊1BA06,然后是spring比五等于这样就可以了,这样怎就知道,哎,要到这个class pass下面去找这两个配置文件,好,那现在。配置文件的指定方式,我们这就写上了。那测试一下吧,看一下是不是能生效。回到我们测试类,那现在你们注意看,这加载的是这个主文件吧,也就是总的这个文件吧,这我们要加载的是这个总的这个文件。总的这个文件加载它。当你在读取这个文件的时候。Spring就会按照里边的这个。Resource,再从这个类路径中去读取这两个文件,那它跟你读一个文件不一样吗?就把它们两个一起就读进来了,跟读一个文件完全一样,好看下效果。
10:11
肯定是完全没问题,能成功的。看结果,中航空大学再来看我们的对象的创建和赋值都是成功的,跟一个文件一点区别都没有。那你就是加载这一个总的文件,当读于总文件的同时呢,它会把凡是带这个import的全都给你加载进来,那你这块用引泡的就可以看作是一个文件列表了啊这块是。呃,加载的是文件列表。加载的是文件列表啊,文件列表,文件的列表啊,那现在用水泡的,用这个引泡这种方式,我们叫做包含关系的配置文件啊。
11:02
这种叫包含关系的配置文件,包含关系的配置文件,那就说我们用一个总的文件把其他文件数包含进来啊,叫包含的配置文件。在使用这种包含关系中呢,我们除了可以一个一个的列出所需文件以外呢,我们还有一种方式叫使用通配符,那就是在包含关系的配置文件中可以使用通配符,通配符啊通配符。这个通命符呢,就是星号,它是表示任意字符的,表示认地字符,用这个星呢,可以把一些符合条件的文件一次加载进来,怎么用呢?我们看一看怎么用,Part result last pass。
12:06
它的路径是BA06,那你会发现我在命名文件时,他们是有一定的规则的吧,我命名时是死不定开头的,后面是死丢的或者是死户。那这些死热死故就用聪明符来表示就行了,那我们就可以变成什么杠星叉ML,这就OK了,那我们就可以把这个和这个这样的文件就都读取到了,我把上面这两个。语句注释掉,现在我们用的是包含关系的,而且是带通配符的方式,那一次性的就能把符合条件的这个。和这个,哎,还有这个就都能加进来了,那这个能不能加载进来。应该也能吧,好,那么看着total这个文件,我得改一下才行,不能叫total,叫total就完蛋了,我改个名字,我就叫做偷偷吧,改成这样一个文件啊。
13:13
然后那这一块呢,是total,你注意看,我特意改了一下。大家想想为什么要改啊,再把走一个。找一个代码,现在没问题。那我刚才为什么要把它改一下。改一下呢。原先我叫头走对吧?原先我是叫做头,那现在为什么改成叫头?我改它的目的就是把这个文件。避免是不是和它匹配呀。如果你要写什的话,这个文件是不是也包含进来了?如果你要这么做,肯定会有问题。
14:02
它会造成你的死循环,这里大家注意一点,就是在用这种通背符时,你要注意的是。我们这个组的配置文件的名称,它不能包含在通配符的范围内,也说你不能叫什么total,那木叫这个,你叫这个就完蛋了,那怎么回事呢?那假如说你是叫做什么头疼,那当你的代码走到这一行代码的时候,它会去加载这些文件,同时会把这个文件是不是也加载进来呀?那你想当你在执行这个文件的时候,是不是会又成这条语句?那他是不是会又去读这个文呢?那么读它之后它会又走到这,那他是不是加这个文呢?那回来再读这条语句,然后再加载,这就没头了,这不死循环了嘛,所以它会造成这样的问题,所以你在使用这种带通配符的方案中,你注意点这个主的文件呢,是不能符合这个烘配符的范围呢,会造成死循环的,注意这一点就可以了,但一般来说呢,这个问题应该不会犯。
15:24
但有可能你就在拷贝文件时,这个名字呀,没有及时改过来,有可能会造成这个问题,所以你注意一下就可以了,就是包含关系的配置文件。在这八关系中呢,要注意,如果你要通配符的话,用通配符的话,Spring的规定是这个配置文件带同配符的,也就说如果你要用通配符这种方案,你的配置文件必须放在一个目录中,也就像我这样必须放在一个目录中,在目录中有这些文件,你才能用通配符,否则是失败的,这是它源代码中在写的时候就这么规定的啊,你要注意了,再说一遍,如果说。
16:10
你要用带通配符的这种语法方式来指定多个文件的时候,一定要注意这些文件必须放在一级目录中。比如说它上边有一个目录。啊,必有目录才行,没有目录用同配符是加载不进来的啊,要注意这一点。那也就是说,如果你要用通配符,这个文件得按我这样的格式在一个目录里边有,你不能把这个文件直接放到result下面,你放到这它是读取不到的啊,是读取不到的,直接就放在result下面,这个文件你用这个通讯符这是读不到的啊,要注意这一点。好,我把这个删掉了啊。如果你想尝试,你可可以试一下,肯定读不到,这是的源代码中,他在读这个通讯符的时候,他判断上级有没有目录,如果没有目录它就读不到啊,所以注意点这这个问题就可以了,就是包含关系的配置文件啊。
我来说两句