00:00
好,接下来我们继续来看第六个实验,第六个实验呢,就是我们专门来看依赖的范围。哎,呃,配置依赖的范围所使用的标签呢,就是我们这个scope标签啊,Scope标签它是在我们depends里边的,哎,每一个具体的dependency啊,也就是具体的依赖配置里边可以指定一个具体就是当前这个依赖它的一个范围。啊,当前这个依赖它的范围。呃,那这个范围是什么意思呢。这个时候我们通过它里边可选的值来给大家去解释啊,呃,基本上我们说哈,我们能够接触得到的大概是这六种不同的取值,分别是comp provided system runtime import。而这里边呢,今天啊,我们在第一个锦囊里边,咱们先来看前面这三个。后边这三个呢,我们在第三个锦囊里边给大家去讲解。
01:03
而这后边这三个里边呢,其实比较重要的哈,相对来说我们需要了解一下的就是相对来说比较重要一点的话,就是这个importt啊呃,这些呢,后边再说啊,为什么呢,为什么不在这儿一切都讲了呢,就是我们刚开始学的时候呢,咱们先get这个叫最小必要知识。因为我们学会了最小必要知识,马上这个东西呢,就可以上手去把它用起来了。而我们从学到用,哎,然后呢,通过用再回去巩固我们前边的所学,这个时候就形成了一个闭环,这个时候对我们提升学习的效果是非常有好处的。啊,所以说呢,先不要贪多,先不要着急学那么多,先搞定啊,先拿到最小必要知识,以最快的时间先上手,能够使用,然后呢,后边再去学那些个,哎,更进一步深入的和扩展的。这就是我们为什么咱们把这个课程,咱们总体上分成三个锦囊啊,也是这样的一个用意在里边。
02:05
好,呃,那么下边我们说呢,Provided这三个不同的依赖范围啊,咱们两两来看。我们test和provided,我们让它都和compel呢去进行一个对比。在对比的时候呢,又是从空间和时间呢,这样的两个角度来看。哎,那么首先呢,我们来看compile和taste的对比。那么怎么样从空间上来对比呢?就是说呢,我们以compel的方式,以comp的范围引入的依赖,哎,它对我们main目录下边的程序是不是有效的呢?它对我们test目录下边的是不是有效的呢?哎哎,以test范围引入的,它对main目录下边是不是有效的啊,这个对test目录下边是不是有效的。哎,就是我们从这个角度来看啊,我们就能够去感觉到啊,就知道它的这个区别了。
03:00
那么说什么叫有效,什么叫无效呢?大白话来说,最通俗的。来解释这个事儿,就是说能不能用啊。举个例子啊,你看我们以compel啊,就是说咱们先看这个第一个格。先看这个歌以compel范围引入的依赖,在我们闷目录下边能不能用。啊,什么叫在闷目录下边能不能用呢?就是闷目录下边的Java程序,Java代码能不能用这个以comp方式,以comp范围引入进来的这个加包,哎,能不能用它里边的这个类。那么我们去找一下啊,我们这个闷目录。我们可以来这儿这么看。啊,不过我们第一个Java工程,Java工程没有这个comp范围啊,它这只是个T的范围。嗯,那么好,咱们呢,来看这个。外部工程。
04:01
大这个思路上边来跟上哈。我们这三个依赖里边,我们这三个依赖里,哎,它是test范围的,它是provide范围的,这个我们对第一个Java工程的依赖是范围的。那么我们现在呢,要看的就是这个compare范围的依赖啊,我们现在看的是这个格。那么这个main目录下边的代码呢,指的就是我们,哎当前啊,这个Java就是这个外部工程,第二个外部工程去看一下它里边这个Java目录下边的。Hello sorry。是吧,哎,你看啊。慢目录下的Java类,就是我们这个hello啊,当前的这个hello。那么我们以这个compile范围引入的。呃,依赖。就是我们第一个Java工程。
05:03
然后呢,这个第一个Java工程中的类,诶,就是我们那个CC calculator。哎,Calculator。现在我们想要去验证一点什么呢?嗯,验证的这个目标啊,看看呢,就是说你看这个闷目录下边的这个hello so,能不能够使用这个。Calculator,如果能用的话,这个格里边就是去填有效,如果不能用就填的就是无效啊,哎,当然结论这已经写上了,我们只是来验证一下啊,说这个,呃,怎么能知道它能用不能用呢?啊,其实呢,很简单。在这儿咱也不用说在这个do盖方法里边去写什么啊,因为在这写你还得这个把它部署到tomcat上边,再跑起来,再给他发请求,这样再看,这样就比较的慢,我们就这样就行了。
06:14
我们呢?通过import语句将要测试的类引入当前类,哎,这个时候呢,呃,如果引入之后。引入后啊,如果这个编译能够通过,哎,说明可用,就是说是可以使用有效。哎,如果编译失败。说明不能使用。
07:01
那么这个范围的依赖对当前类就无效。啊,这样的话大家去跟上啊,就是去你去捋一下这个逻辑,我们想在当前这个类里引入这个类,如果当前这个类里边引入它以后啊,我们编译能够通过的话,说明呢,以这个compel啊,就是以这个范围引入的,对当前我们这个目录下边是可以使用的,如果编译通不过的话,说明不能使。哎,所以我们现在呢,用po啊,引入一下calculator,这就是这时候得写全类名了。好嘞。哎,那么把这条语句写上以后啊,它如果导不进来这个类的话,它这个编译肯定是过不了的,所以我们现在呢,就要来执行一下这个编译的操作。啊,当然我们这儿这个验证的目标哈,这样我们把这个,嗯这么说吧。
08:00
这就是我们一个测试的方式哈。判断的标准诶。下面咱们来这个给它编译一下。哎,我们的对第二个这个外部工程啊,重新去编译一下。还是先清理掉,然后再让它重新变异啊。诶,那么大家看到,呃,Build success。因为我们前边清理过,可以非常肯定非常确定啊,他不是以前的旧的代码啊,就是说啊,不是说改之前的,肯定是改了以后的这个代码啊,它重新去编译的,哎,构建是成功的,说明是没有问题的啊,那么哎这就证明了我们这个格啊,证明了这个格说明呢我们comp范围。以comp的方式引入的依赖,对我们梦目录呢是有效的。接下来呢,我们就来看一下这个compile范围引入的依赖呢,对我们test目录呢,是不是有效的,哎,就是这时候咱们来看这个格。
09:06
那么我们就要去找了,你test目录下边的那个程序是谁?哦。就是calculator呀,不是这是第一个哈,我们得上这个外部工程这来看哈。Ccul,这也有。那么。在这儿我们说啊。呃,这个测试的方式也是一样的。通过import语句将要测试的类引入,当前类引入以后,如果编译能够通过,哎,就能用,编译失败的话就不能用啊,所以说我们现在呢,再来看一下。呃,我们现在呢,当前这个类呢,它就是T目录下边的Java类。
10:10
Calculator。哎呃,然后呢,呃,Compare范围引入的依赖,这个是这个是一样的,哎,要测试的都是它。啊。呃,再然后呢。哎,我们想。呃,就是它是compare范围引入的,然后它里边具体呢,我们要导入的类是下边这个calculator。哎。哎,那么也就是说这时候我们要对这个测试类哈进行编译,我们再说一遍,再捋一下这个逻辑哈。当前这个类就是它。用comp范围呢,引入的依赖是它。啊,这个PRO01JAVA里边有一个类calculator,如果我们引入calculator是编译能够通过。
11:06
不报错的话,那么就说明comp范围引入的我们这个依赖这个第一个工程是吧,它是可以使用的。啊comp范围对case的目录就是有效的啊呃,那么其实这个都不需要再其实不需要再多说什么了,你看这可calculator这个早就已经导入了啊,之前我们都验证过,后边都能创建它的对象,都能调方法啊,就有这么多,所以说呢,在这儿呢,我们当然可以再重新的去做一下。对测试程序的编译呢,使用的是test comp啊。哎,也是没有问题的,哎,这就说明了我们这个格哈这是有效的。所以在这儿呢,就是说这个呃结论啊,就是这个表格里边的这几个字,但是呢,我们是怎么去推出来这个结论的,怎么去证明的啊,怎么去验证的,这个需要大家呢去。
12:06
梳理一下这个逻辑啊,我们比如说呢。你看我们再再回过头来,再再再重新说一遍啊,这个地方一定要把这个逻辑捋清楚了,我们想看看这个闷目录啊,或者说这个comp范围引入的依赖,对我们梦目录下边的程序是不是可以使用的。或者反过来说呢,闷目录下边的程序能不能使用comp范围引入的依赖它里边的这个类啊,那么我们为此呢,做了这样的一个测试,慢目录下边的程序就是ho so。然后呢,哎,我们引入的用comp范围引入的依赖里边的类就是这个calculator。就是他。现在我们也把它给引入了,引入了以后呢,我们就看看编译能不能过,编译能过就有效,编译不能过就无效,哎实际测试以后,编译编译能过说明就是有效的,就这个格就验证了。
13:02
啊,是这个逻辑,那么我们想看看呢,这个test目录下边的Java类能不能够使用comp范围引入的这个依赖啊,那么我们呢,就找到了我们配的目录下边有这个类,在这个类里边呢。把我们compel范围引入的依赖里边的这个类呢,给它导入啊导入看看编译能不能过,哎一看能过也说明也是有效的啊,就这个这个科就证明就没问题。啊,这是这是我们去测试的一个这个逻辑啊,以及这个我们是如何去推出这个结论的,哎,大家把这个逻辑呢,理解了啊,这个逻辑理顺了,哎,然后呢,这个结论,接受这个结论就好了。
我来说两句