00:00
嗯。好,那我们说呢,在Java中啊,串串对象呢,有很多方式,最常见的构造方法,反射序列化克隆,还有呢,IOC串串对象。但有同学说呢,还有这个是动态代理,是的,可以动态代理,当然他也能创建对象,没问题啊,动态代理可以创建对象,这些呢都是创建对应的方式,那么这些方式中呢,这个IOC和他们都不一样。他们都需要你在代码中写创建对象的代码,对吧?你都得写吗?New反射也得写,序列化也得写,克隆也得写,作业代理呢也得写,这IOC是不需要你在程序中写代码的,也就是说不需要在你的成语中写代码就能够获取到已经创建好的对象。那IOC这种思想,我们在实际的这个学过的知识点中有没有呢?IOC是一个更大的知识点,更大的一个知识点啊,就IOC是个更大的,它体系呢是比较复杂的,里边呢,不仅单单说的是创建对象啊,不仅单单说创建对象,它还有管理对应的关系,还有使用的赋值,它有很多功能的,只不过呢,创建对象是最明显的一个而已啊。
01:28
我们学过知识点中有没有it的实现呢?有,有。大家之前呢,肯定做过serve light吧?我们说IOC的一个体现。大家之前做过so that,大家想啊,这个so我们怎么做的?Solo怎么做的,那他应该是去创建一个类,它是要进行一个继承吧,继承http solo吧。
02:07
继承这个http server light。好,创建类呢,记成H。之后那怎么用这个so select呀,我们是需要在这个web叉M文件中,你是得去声明或者叫注册吧,是得注册这个select呀,我们使用的是serve light标签这起个名字,比如说我叫做my so light。然后so that name后面呢,再写的是soda class,这写的是come加北京。
03:09
然Beijing power not啊,比如说controller包中的说MYSO,我们是这么写的,对吧?这个没有疑问吗?这是我们指定的名称权限的类名,但是你有没有发现我们在项目中用这个my that时候从来没有创建过吧?从来没有创建过吧。那就是说三。那么没有呢?创建过serve light对象了,你没有说my serve light,然后light等于new my,你从来没这么写过吧?
04:10
那说明就是说呢,你没有呢,创建过这个solo吧,没有创建过它。那么再想,你没有创建过它,那你为什么还能用这个so呢?那我们在程序的运转过程中。必须用到的是对象吗?那就说明你在项目中它一定会有这样的一个对象存在吧,它是对象的名字吗?叫麦来。这个地方有,那你有没有想过这个对象谁创建的呢?你这个ma肯定得创建嘛,不创建肯定用不了嘛,谁创建这个对象呢。肯定不是你,你在代码中你没写过这样的东西啊,你没写过你也不能写啊,那这个塑料谁创建的。
05:01
对象是他CA的服务器,他给你创建,那你看现在你用这select就是别人创建的吧。别人创建的,你没创建,但是你能用它。那这个是在这个文件中说明的,如果说我不想用的是my select了,我想用MY1。那你这一改。这个算数就变了。源代码就是说你成用代码英文改,不用吧,就能使用新的so select了吧,这样的话修改多容易呀,那么so select它就是IOC的一个体现的,因为你的这个so不是你创建的,是由Tom KT给你创建的,所以tomcat它也称为叫容器,也称为容器。
06:05
也称为呢,叫容器。这个容器里边它放的是light对象,当然不止有这些,还有其他的。那就是说你的tomcat,它作为容器,那里边存放的有对象,还有我们的监听器,还有过滤器。等对象,这些都是存放在这个容器之中了。这些对象呢,都是在我们的这个容器之中存放着的。这就是我们所说的容器的概念,那现在呢,我们的框架它也具有tomcat这样的作用。
07:01
我说的是容器的一部分啊,容器这部分作用,它也能够帮我们去创建对象,让你的项目中可以直接用这个对象,这就是I,一个体现我们的so light监听器、过滤器,它们的创建是由容器来完成的,他们CA就是这样的一个容器,它俩完成了对象的创建,而对象是声明在这个外B本件之中的。你在这文件中去改这个对象就很容易了吗?源代码也不用改什么,这就是IOC的一个体现,或者说是我们以往学过的技术中,IOC就已经包含了,只不过没有干没有给你呢提出来点名而已啊,所以so let它的实现实际上就是IOC的一个体现啊,那这块大家应该家有所了解了吧,应该能够清楚的实现或者知道IOC它是在你乘的代码之外来完成对象的创建工作的,这就是IOC。
08:05
LIOC。那L灵魂是炸包吗?当然,这跟炸包没关系啊,跟炸包没关系啊,没关系。跟没关系啊。你家同学说老师是真人吗?当然是真人了,当然没问题,当然是真人了,你回答的问题有这么好的机呃,智能机器人吗?应该没有吧。嗯,我们往下来啊,我们再来看看其他的。这是IC的一个体现,那么IC呢,它是一个理论啊,是一个理论。那这个理论的话呢,它肯定得有落地的技术实现呢,我们来说IOC的技术实现。
09:07
IOC的技术实现。因为IC这个理论嘛,那理论的话,肯定有一个技术方面的支持嘛,得实现这个理论嘛,它的实现呢,主要用的是一个叫做Di的奇数实线Di啊。Di是IOC的还是技术实现?Di是IOC的技术实现啊,就是说是在技术上怎么实现IOC的,有个名词叫做Di,那Di呢,翻译过来呢,是叫做依赖注入。Di啊,它是叫做依赖注入啊,依赖注入。
10:03
它的全称呢,是叫做。Dependency injection就是这个。叫依赖注入。这个依赖注入呢,是。IOC的技术实现的一个名词。也就说Di就是IC的一种实现方式,那这个Di它的实现方式是什么样的呢?那第二是说。我们只需要。我们只需要在程序中提供,只需要在程序中提供要使用的对象的名称就可以了。那至于这个对象如何在。这个对象如何在容器中创建啊,赋值查找都有。
11:09
这个容器内部实现,也就是说呢,由容器呢自己的内部呢,来完成整个对象的所有的工作,这个对象怎么创建的,属性怎么赋值的,怎么找到这个对象都容器内部自己来实现,你都不需要管。你只需要提供一个名称就可以了,这个名称我们就能找到这个对象啊,就是名称就可以了。通过这名称就能找到这个对象,就能为你所用了,就可以了,就要是说你的,So,这不起个名字吗?通过这个名字就能找到这个对象了,就能找到它了。那这里也是一样,通过一个名字,我们就能找到一个容器中的对象。这叫做依赖注入,那这种方式呢,对于我们的开发人员而言,他去用这个对象就很方便嘛,因为你不需要关心更多的工作,你只要通过名字就行了,所以我们现在的绝大多数的技术中用的都是BI的这种原理。
12:19
通过名字来用对象的,那我们要讲的spring框架呢,它用的技术也是Di这种技术啊,在这里边呢呢,它是使用的Di啊,Di实现了IOC的功能,IC的功能。Spring的底层呢,它的底层啊,创建对象使用的是反射啊是反射。也就是说spring框架呢,它用的是IO形式,这个Di的这种技术实现的IOC的功能,也就是说呢,是作为容器能够实现IOC。
13:11
它底层用的是反射机制,是反射机制啊,就是说最根本,最根本创业对象用的是反射机制来做的这个事情啊,做这个事情。那就说。是么?它实现了Di这种技术,它底层用的原理是反射来创建的对象,这就是叫这个概念,IOC的概念和它的实线啊,和它实线。我们说这个是行,这块是我们的这个理论部分内容啊,理论部分内容。然后看看大家提问的内容。
我来说两句