00:00
好,上节课呢,我们看了一下咱们这个自定义的过滤规则,那么我们接下来呢,再来看一些其他的注解,我来写一个新的配置类。那我们就叫man con2好,首先呢,告诉spring,这是一个配置类,我们呢也给默认呢,我们来也注册上一个啊,为了方便呢,我们来写一个新的进行来测试,好new一个。好,假设呢,这个是张三。25、好,我们把它加到容器中,加到容器中我们给它指定名字就叫person。那么呢,我们这个容器中就会有一个person对象,哎,我们可以来把这个测试类也写上。还是这个一样的东西,零二,只不过呢,我们现在来加载MAN2,哎,我们用它。
01:09
那么呢,在MY2这个配置类里边呢,它就只有除过LC容器自己的啊这些东西外,那么有一个MY2我们当前的这个配置类和一个person哎,我们加进去的,那么接下来我们来说。特别是这个呢,我们来获取一下applicationest.get b,我按照ID来获取。Person。来获取。也要说呢,这个大家都知道,我们默认它是单实力的。然后在IOC容器中给我们加的这些组件,默认呢,都是单实例的。所以说我无论多少次获取,那么它获取到的都是我们之前new的这个实例对象,我们可以看一下。
02:04
好在这个测试类里边,这是第一次获取跟第二次获取。来输出一下,输出一下这两个对象是否相等呢?好。哎,我们看到这个呢,是相等的,就说默认是单十例的,那么呢,我们可不可以可以改变它的这个默认情况呢?当然了,我们来在们CONFIDENT2里边,我们借助于另外一个主子叫at SCO scope呢来指定它的这个作用范围,那么scope里边能取什么值呢?我们来可以看一下它这个scope里边啊,Scope能取上面这些值,它在。这几个拿过来。这跟我们来写配置文件其实是差不多的,那么呢,第一个是con啊,咱们这个being factor里边的scope prototype来看一下这个类。
03:09
这类里边有一个叫scope,哎,这个prototype,那就是第一种我们能取这个值。第二个呢,叫scope single,我们还能取这个scope s也能取这个值。包括呢,如果在web环境下还能哎取这个web applicationest,什么scope request这个呢,就是我们说的request和咱们这个session。那么这四个取值呢,后两个我们就不说了,这个不会用到,哎,我们来就来说前两个,一个叫prototype,一个叫它呢是哎,我们这个是多地的。也就是说呢,正好与这个C相反,它是单实例的,然后呢,自然这是一个默认值,我们不设置的情况下,默认这些比影都是单11的,那我可以通过修改,哎,在这一块指定它到底是什么?当然指定我们刚才说的这些值,还有这两个request,它是呢,同一次请求创建一个。
04:24
和同一个赛事。同一个session创建一个式,当然下面这两个都是需要外部环境,哎,而且呢,下面这两个在外B里边我们也不会用到,我们如果要同一次请求或者同一个session都用一个对象,那我们就把它放在请求域中或者session域中就行了,好,我们现在呢,先把它变成proto t,我们来进行测试。看现在这两个鼻影还是一样的吗?走。
05:01
哎,我们发现现在呢,就是falses了,其实就是等同于我们在鼻影配置里边,诶在鼻影标签里有一个scope属性,能取到这四个值,哎,其实是一模一样的,哎,我这是我们的使用注解scope来控制它的这个作用范围。另外呢,我们需要说的是,如果是单实力的情况下,也就是说取默认值的情况下,那么我们这个,哎,把B创建出来放在IOC中的这个方法,它是何时调用的,你们可以看一下咱们这个给容器中添加咱们这个person,这有一个方法就是它啊,那么呢,我们先来看默认的情况下。来到这个测试类,测试类那我怎么看呢?我们先不获取B应,我就先把IOC容器创建出来。
06:00
来测试。走,大家看到的是在IOC容器创建好以后呢,创建的时候,我们这个方法就已经被调用了,也就是说。默认在单实力的情况下,LC容器启动。会调用方法创建对象,放到IOC容器中。这样呢,以后每次获取直接就是从容器中来拿,以后每次获取就是直接从容器中啊,那上一次放的这个对象,你下一次不管下一次还是下下一次怎么获取,都是之前我们创建好的对象,所以说呢,它是一个单实力的,而这个容器从容器中拿的过程,你就认为是从map中get一个对象的过程,哎,那么呢,这是我们这个单实例,但是如果我们调成是多实例。
07:05
大家看IOC容器启动的时候还会调这个方法创建对象吗?来测试一下走诶我们会发现控制台这个方法的调用是不是并没有打印啊,那什么时候打印呢?哎,我们来获取一下这个对象,在这个测试类里边,好,我把这个获取B。打开我们在这儿打印一下,这一块呢,就是IOC容器创建完成。哎,前面这个LC容器对象已经扭出来了,创建完成之后呢,我们要获取。哎,我们会发现我们创建完成以后,要获取的时候呢,我们这个方法会被调用,哎,创建出对象,然后呢,给我们同时如果我多次获取。
08:03
走。哎,获取几次就掉几次,所以说呢,这是咱们这个多实例的情况,也就是说在多实力情况下。我们来到这个麦二好,这个多实的情况下,LC容器启动。并不会去创建对象,去调用方法创建对象放在容器中,而是什么时候呢?而是我们每次获取的时候,每次获取的时候才会调用方法创建对象,所以说呢,而且呢,每次获取都会调一遍,所以说呢,我们多实例的情况下,第一次获取,哎,我们调这个方法扭一个,第二次获取调这个方法拗一个,那这两个对象都是新拗的,自然都不一样,所以说呢,我们把这个它就是等于false。
09:05
好,这就是我们说的咱们这个组件的咱们这个作用,使用at scope可以来调整咱们这个作用。哎,使用咱们这个主机。调整做。
我来说两句