00:00
各位同学大家好,下面呢给大家来演示bin的作用欲,首先解释一下什么叫作用欲,给大家做说明,就是我们之前呢是用bin标签来配置对象创建,而bin标签中有个属性,这属性名字叫scope,通过cope能指定这个bin的对象是个单实例还是多实例,我这里边列出来了,如果说咱们的直single表示是单实例,因为就是单实例,如果说你是prototype,那就表示它是多实例,注意啊,这个单实例多实例,他们的创建时机是不一样的,如果说你是单实例。那它在IC容器初始化的时候就进行创建,而这个多实例它会在你获取bin的时候进行创建,这咱们一会儿进行演示。另外如果说你在web application contact环境下还有两个作用域,这个大家了解一下,一个叫request,表示一次请求中有效,一个叫session,表示一次会话中有效。咱们主要演示单实例还有多实例,这是一个基本概念,那我下面呢,给各位咱们来做一个详细的演示,咱们看一下这个B的作用域这个效果,那咱们来具体看一下啊。
01:20
首先在里边我来建个包,这个包我们起个名字就叫做scope,然后在SCO里边我就直接建个类,这个类我起个名字就叫这个OS,就是订单,然后在里边,比如现在我们给它。创建一个属性啊,当然也可以不建属性,咱就直接来个类,用它做个测试了,然后这个之后下面呢,我在这里边建一个S的配置文件麦进行创建,然后给配置文件起个名字,我叫B杠。Scope点叉了这个咱们做一个创建。
02:01
然后创建之后在里边我们进行这个具体的配置,那我们来写一下啊,跟之前一样B。加上ID。再加上class里边加上它的包类路径,也是咱们说这个路径。把这个复制过来叫S,然后给它起个名字,我们就叫S,然后这个之后们注意啊,在这里边呢,我们还可以再加一个属性,这属性叫scope,然后此后里边咱们看到两个值,一个叫single tone,就表示它是一个单实例对象,另外还一个值。叫pro,表示它是多实例对象,那咱们先演示一个单实例对象。我把这个给大家讲,这里咱们通过这个scope属性能配置,你是单实力。还是多实力。
03:01
这个我写一下啊,单实力还是这个多实例。通过里边两个值,我们可以做到一个叫做single tone,一个叫pro,那我现在这么做是单实例,然后我强调啊,这个你不写,默认就是单实例,咱们测试我们来看一下啊,在这里边我加上一个测试类。咱们就叫太子。S。创建,创建之后加上一个方法,我们来快速测试一下啊,根据我们之前写到的application cont等于new上一个pass,加上咱们配置文件的名字scope点买了。注意这个名字不要写错,然后之后我们获取一下我们这个B或者这个对象。根据它那个ID值这个orders。包括加上它的类型点,最终得到我们这个对象,然后把对象我在里边,咱们做一个输出。
04:06
Orders,所以现在把这个最基本的代码我们就完成了,这个很简单,就是加一个词和属性,设置不同的值,表示单实例、多实例,如果说你不写,或者写个single to,那它就是单实例。下面再来做个测试,试一下这个效果,看它是怎么样的。现在我们来看一下啊,把这个执行一下。然后大家看啊,现在已经执行了,得到的是一个对象地址,然后这个过程中大家看我这里边有这个日志信息中有这么一个信息,咱们看啊,第一部分就是创建了一个对象,然后第二步加载这个配置文件BSCO叉看第三步这里写的很明确,你看啊创建了一个什么,看这句话是不是一个单实力的B叫OS,比如说咱们刚才在里边写到的这段话,各位要明确啊,它是在IC容初始化的时候,这个就创建,包括你看他的信息中有这个叫单实例对象,这咱提到的,那比如说为了测试明确,我这么来做啊,我把这对象呢,我再获取一次,咱们改个名字叫O1。
05:20
然后我把这O1咱们也做个输出,看两个对象是否是一个对象,因为咱们输出的地址,如果地址一样,那就是一个对象,咱们试一下啊,大家看地址是不是相同的,所以证明咱目前是一个单实离对象,这个我们就完成了。然后完成之后我们继续测试啊,把这值改一个,它叫prototype,这个是多实例,那咱们测试啊,大概它的效果,首先我把这个直球。咱们看输出的结果,各位注意啊,咱们仔细看,先看这两个对象的地址,大家发现是不是不一样,因为他们不是一个对象,是个多实例,另外大家看啊,在他的日志信息中,你发现是没有刚才那个创建那个部分,这个就是我刚才说的这句话。
06:14
这个多实例在什么时候创建?它在你获取B的时候创建,而不是在容器初始化的创建,也是我们现在代码中我用contexttest get b的时候,它把对象会进行创建,跟单实例创建的时机是不一样的,单实例时初始化式创建,多实例是获取B的时候进行创建。所以以上啊,就是咱们演示的B的作用域,各位把这个知道啊,单实力还有多实例,另外知道它创建对象的时机。
我来说两句