00:00
好,那咱们spring呢,它来管理对象,它管理的对象呢,然后咱们都叫做组件,然后咱们也叫做并大家注意,所以说咱们在这儿呢,下面咱们就来学习一下spring来管理B,然后这个spring管理病呢,咱们是有两种方式,一种是基于叉ML的方式,一种是基于注解的方式。那咱们先来讲一下基于叉L来管理B啊,大家注意基于注解和基于叉L都非常的重要,以后咱们都会用到啊,好,然后呢,我们基于这个叉L来管理,并咱们先来看一下这个先写一个入门案例啊,首先呢,咱们创建一个ma model,然后咱们已经创建过了,然后引入依赖的话,咱们也已经引入过了,那下面呢,我们来看一下咱们引入的依赖都有什么,首先咱们有一个叫spring-context context大家注意是上下文的意思啊,你像我们的application context,它就叫做应用上下文。好,然后下面呢,在这还有一个unit,那咱们就导入这两个依赖,够吗?大家注意,然后我们当前spring-context,因为依赖是具有传递性的,所以说spring-context的它所依赖的这些架包也会被同时导入进去。好,下边呢,我们来找到咱们的maven,然后找到我们当前的这个工程spring_hello word,然后咱们找到dependencecies,大家看啊,这里面其实它所间接引入的依赖是有很多的,比如说咱们的spring-AOP面向切面编程spring-bans来管理B的spring-call核心,然后spring-expression,然后这个是的一个表达式的一个框架,然后这里面呢,大家看它间接引入的还有一些,比如说这里面还有一个叫做GCL,这个GCL呢是咱们spring里面的一个日志框架,就比如说我们之前呢,然后咱们现在用的是spring5.3.1的版本,我们之前咱们在用,在用SPRING4版本的时候那。
01:57
当时呢,那里面还没有这个GC这个框架,然后我们必须要引入一个commons-loging的一个架包,然后来作为日志框架来使用啊好,但是现在呢,咱们的spring里面它是自带这个日志框架的,所以说我们现在就不需要再导入那个commons-login了啊好,OK,行,那下面呢,我们继续往下看,然后咱们再往下的话,我们就需要来先创建一个类,因为spring它是用来管理对象,管理病的,那咱们对象从哪而来?对象从类而来对不对?所以说我们在咱们的这个主程序下去创建一个类,com.at硅谷,然后点spring,然后点,比如说咱们写个pogo,对吧,然后点就叫做hello word,行,好,那我们现在把这个类创建完成之后啊,咱们在这里面来创建一个简单的方法,叫public,沃的叫做C哈。
02:55
好行,然后咱们在这就说出一句话叫做hello spring对吧,然后我来了啊,咱们要学习spring了啊,好,然后呢,我们现在类有了之后,那我们就现在就需要把这个类啊交给咱们的spring来进行管理,那我们怎么做呢?大家注意,咱们在这需要来创建一个spring的配置文件,然后咱们来选择这个resource,然后来点击右键去new一个配置文件,选哪个啊,大家直接来看这个地方叫XL configuration file,然后下面在这直接就有一个spring con,就是spring的配置文件,那我们。
03:31
选择它,然后创建一个配置文件,在配置文件的名字叫什么呢?大家想叫什么就叫什么,无所谓啊,然后最起码在我们当前咱们学习这个spring framework的时候啊。这个配置文件的名字咱们都是可以自己去写的。好,但是等到我们以后,在SSM里面,大家注意spring的配置,文件的名字就不能随便写了,因为到时候在SSM中咱们创建的是一个外部工程。
04:01
咱们spring的IOC容器它就不需要我们来获取了,而是由我们当前咱们的程序它自动来获取的,那所以说我们当前配置文件的名字,它也是有一个固定的位置和固定的名称的,但是我们现在呢,咱们的IOC容器是自己过去的,那大家也可以想一下咱们IOC容器在咱们spring中的一个实现,咱们说了我们要用到的一个实现类叫class pass X application contest,咱们是通过类路径下的某一个叉L来获取的IOC,所以说是哪一个叉L我们是可以来指定的,所以说这个文件的名字呀,大家可以随便去写,当然呢,大家也可以先看一下这个名字叫application啊,Ion叫application context,这个呢是我们以后咱们经常用的一个名字,就比如说在SSM整合中,Spring,它的配置文件默认的名字就叫做application contest。当然呢,咱们在这儿只是先让大家看一下啊,等到以后咱们会以这样的一个方式命名,但是呢,现在的话咱们再说一遍,因为我们现在可以来指定通过某个叉ML来获取IOC容器。
05:13
所以说呢,我们当前咱们的这个配置文件的名字,大家可以随便去写啊,好,然后大家看这就是spring的配置文件,它的B,它的跟标签呢,叫做beans,那这不是一个复数标签嘛,那所以说在咱们的beans里面是不是就可以来设置多个并in标签,这个我们之前在学习my beities的时候,咱们就知道my beities里面就有很多复数标签,里边是不是可以设置多个单数标签对不对?好,那这里面的一个B呢,咱们说的叫咱们现在学习的是什么?叫做基于叉ML来管理B,管理bin,大家来想想,那我们最主要的不就是把这个病给配置出来对不对,然后呢,这个B来表示的就是咱们spring中的一个组件,换句话来说就是咱们spring所管理的一个对象,OK吧,好,那咱们再来看这个地方,这呢这个呢是我们在病死标签里面来设置的一些属性,那这些是什么,大家注意,这就约束。
06:10
这叫做约束,也叫做命名空间,然后呢,就相当于我们在my be的配置文件里面,咱们所创建的咱们这个所写的那个什么叫引入DTD文件,然后这东西叫做约束,然后这个约束就是来规定当前咱们的配置文件里面能够写什么样的一个标签。OK吧,好,就像是咱们再往下去讲的时候,咱们可能会用到一些其他的约束中的标签,那这个时候你能直接去用了,不能,我们就必须得先把它的约束加入进来,然后才可以来使用这个约束所对应的标签,OK啊好,那下面呢,咱们就把这个hello word这个类它的对象交给咱们的IOC容器来管理,大家来看怎么配置啊,非常简单,在这呢,就是一个什么标签啊,并标签。一个B来表示的就是一个对象,那这里面的属性啊有很多,那我们现在咱们需要来配置的有两个,一个叫ID唯一标识。
07:08
因为我们在IOC容器中,咱们可以来管理一个对象,那当然咱们也可以来管理N个对象,那我们怎么去区别这些对象呢?我们就可以直接通过它的,咱们就可以通过它的ID来区别,因为ID叫做唯一标识,那所以说咱们只要保证这个ID它不重复,那我们是不是就可以通过ID来获取到一个准确的获取到一个唯一的对象,OK吧,好,那在这咱们就写个hello word呗。是不是啊,然后后边咱们还有一个class,为什么要设置class?因为咱们说一个B对应一个对象,那所以对象从哪来,从咱们的类而来,所以说我们需要通过class来设置我们当前这个B所对应的对象的类型,OK吧,好,怎么写全类名com.at硅谷点spring.p.hello word就可以啊,大家注意,这个就是我们当前把hello word这个类型的对象交给了IOC容器来管理。
08:10
OK吧,然后那我们在这给大家来写一下这个笔记,首先咱们的并标签,大家注意这是干什么的,大家想想是不是应该是在咱们的IOC,或者说是将咱们的对象啊,然后交给咱们的IOC啊,交给这个IOC容器,然后来管理。管理对吧,然后来配置啊,配置一个并对象对吧?然后将对象交给IOC容器来管理ICOIOC容器来管理啊,好,然后它所拥有的这个属性啊,大家来看,然后首先咱们在这有个ID,它是什么?它是B的唯一标识,然后大家需要注意的是它不能重复,OK啊,然后再往下这个class,这是用来设置什么的,大家还记得不用来设置咱们的B对象对吧?好,然后所对应的类型,所对应的类型好啊。
09:10
行,那咱们现在的这个B呢,就已经配置完了,那其实我们在学习spring的IOC的时候,大家注意其实咱们的代码多不多不多,我们前期咱们来讲的其实最多的就是我们该如何在叉L里面来配置这个BOK吧,好,那我们现在咱们把B配置完了,那我们下面咱们就可以通过代码来访问一下了,对不对?好,因为我们现在呢,咱们没有学习更多的内容,所以说我们现在咱们既然把对象交给了IOC容器来管理,那我们是不是就可以验证一下这个过程,先获取IOC,然后再获取IOC容器中的对象,咱们看一下这个对象它能不能使用就可以啊好,创建一个测试类com.at硅谷,然后点spring,然后点test,然后点叫做啊,Hello。
10:02
Word test OK,行,然后咱们来创建一个测试方法,VO叫做test OK,大家看怎么写呀,然后我们现在咱们需要来获取IOC容器,咱们来获取IOC容器对吧?那怎么来获取IOC容器呢?首先大家想想IOC容器在spring中的表现方式是什么?是不是b factory,还有一个application contest。但是咱们说过b factory这个东西它只提供只在我们spring的内部来使用,而对于我们程序员开放的是不是应该是一个application con,所以说我们现在呢,咱们就需要来application context的IOC,然后等于谬一个什么,这东西是不是一个接口啊,那我们是不是要通过向上转型,然后来创建我们当前咱们的IOC容器对象,对吧?所以说在这咱们要用谁?大家还记得不?它的实现类有两个,一个叫做。
11:02
File system XL application contest,但是咱们说过这个是从哪以什么样的配置文件,然后来获取LC容器,是以我们当前咱们的磁盘这个文件系统中的某个叉按L,其实也就是通过我们当前的一个磁盘路径,然后来获取当前的这个IOC容器,好,但是咱们说这个东西不用,为什么不用,因为以后咱们当前的这个工程要打成架包,然后它是不是需要在哪啊,需要在咱们其他的电脑上来执行,那所以说其他电脑上相对应的这个磁盘,磁盘文件上是不是也磁盘路径中是不是也要有我们当前这个文件,但是它不一定有啊,所以说我们现在用谁用class pass XL application contest大家看好,这里面呢,我们是需要把咱们当前的一个什么叫configu location什么意思啊,叫做配置路径。什么叫配置路径?就是配置文件的路径,把它给放进来。
12:03
OK吧,那所以咱们在这直接把它拿过来就行,还有滕老师为什么可以直接拿过来再说一遍啊,Resource和咱们的Java最终是被加载到了同一个目录下,知道不就是咱们的内路径下,所以说在这咱们可以直接来访问,好然后呢,我们现在呢,咱们把IOC容器获取完之后,那下面咱们是不是需要来获取IOC容器中的什么并对象对不对?然后这个时候怎么获取呢?大家看啊IOC点你看方法吗?你看咱们要获取B,那不就是get bin方法吗?大家看get bin在这里面一共有五个方法,咱们主要来讲三个。就比如说咱们在这呢,大家看好了,第一个是根据什么呀,根据类型来获取,第二个是根据一个name和类型来获取,这个呢是根据name幕来获取,那比如说咱们就先来测试一下这个方法叫做根据name幕来获取,大家说什么叫根据name幕来获取呢?什么叫name幕,我们要来获取bin,那我们是不是应该是根据bin的name来获取,那什么叫bin的name呢?那我们再去配置一个bin的时候,咱们也没有配置name属性,但是咱们有什么ID属性,ID咱们说的就是唯一标识,我现在通过ID来表示的就是某一个唯一的B,那所以说大家想想我是不是这咱们在这咱们所获取病的时候,这里面的name其实指的就是什么呀?指的就是咱们病的IDOK吧,所以说在这咱们来一个get bin,然后把我们当前咱们的ID,这个bin的ID给它拿过来,给它放在这个位置就可以,大家看,这就是我们。
13:44
当前的一个hello word OK吧,然后但是呢,大家看好,因为我们是通过ID获取的,所以说咱们知道它的类型嘛,不知道,所以我们可以在这个位置来进行一个强转,好然后下面咱们就可以来调用其中的方法叫做C卡了,能看懂吧,所以说大家看好,咱们这个我刚才就跟大家说了啊,我说在我们学习I这个spring中的IOC的时候,其实咱们的代码是没有多少的,我们的代码无非也就是这两行,先获取IOC,然后再来获取IOC中的B就完事了,我们最主要的是在我们的配置文件里面去配置bin的过程,这个大家注意啊,好,那我们在这咱们来一个测试,大家来看这个效果,然后应该有什么效果,大家应该都知道吧,就是在我们的控制台里面去输出一个hello spring,对吧,好,OK,好,然后为什么咱们会有这样的一个效果,因为我们把对象交给了IOC容器来管理。那我们。
14:44
获取完IOC容器,我们是不是就可以获取IOC容器中的对象,然后就可以来调用对象中的方法,那所以说我们在这咱们这个对象获取到了没有获取到的,如果没有获取到,我们也不可能会调用它的方法来输出一个相对应的内容,OK吧?好,那这是咱们spring的一个入门案例,这个大家注意,非常简单,大家要知道该如何配置一个B,然后我们又该如何获取IOC容器,来获取IOC容器中的B对象,然后呢,这个是咱们非常重要的一个过程啊,这个大家一定要知道啊。
我来说两句