00:00
好,我们呢,再来看一种给容器中注册避的方法,我们使用咱们这个spring提供的,我们叫factor being,这个factor being呢,我们也称为工厂病,就是呢,它区别于普通的兵,像我们这些兵,这是一个普通的兵,哎,我们直接导在容器里边,容器会调用它的无参构造器,哎,然后呢,默认创建一个对象注册在容器中,然我们这个工厂毕竟呢,它是哎一个工厂,这个是一个接口,容器呢会调用get object方法,哎大家看这有一个方法叫get object,调用这个方法返回的对象,把这个对象放在容器中,那么呢,当然还有一个方法叫get object type,我们返回到对象的类型,以及it是否单立在这儿来也可以进行控制,那么呢,我们可。
01:00
你使用一下这个being,比如我们就写一个。Color factor这个颜色的工厂being,然后呢,我们来实现factor being接口,这个T泛型就指定我们要创建什么类型的对象,哎,这个color就是说呢,这是我们创建一个spring定义的,咱们叫工厂定。我创建这么一个工厂品,好,我们添加未实现的方法,那第一个方法叫new,哎,Get object这个呢,来返回,哎一个color对象,Color对象,然后呢,这个对象会添加到容器中,那么呢,我们就随便来扭一个color就行了,好,我来念一个color,那么呢,包括这个我们返回的这个对象的类型,哎,我们也可以给它写上color.class哎,我们是这个类型,包括呢,我们这个叫is来控制,哎,它是单立吗?比如说呢,如果我们返回的是处,代表呢这个B啊,代表这个B是单16。
02:33
在容器中只会保存一份,然后呢,在容器中保存一份,那么呢,如果是false,如果是false,意思呢,咱们这是一个多,每次获取,每次获取都会创建一个新的。那么怎么创建呢?就是调用factory being的这个get object方法啊,如果它被调了,我打印一下啊,我们是这个color factor b会调它的get object方法,得到咱们这个B,好,那么呢,我们现在呢,先默认返回一个处,我们让它是单式离的,然后呢,我们在这在man con里边,我把这个工厂宾加入到容器中,我们有一个叫color。
03:33
Color factor b,好,我们就叫啊color factor,然后呢,我们来return一个又一个叫color,好,我呢给它加上at being主去。但是呢,大家来注意,我们呢,在容器中加的是这个factory鼻音,我们在IOC里边,我们来看有哪些东西走来有一个叫color being,我们来把这个color being拿到,我来看一下是什么不get按照鼻音的名就是它看什么呢?我来看这个鼻音的类型。
04:25
Being up and get up。我们来看这个being的类型呢,它其实是color,也就是说虽然你在这看着,哎,你装配的是一个叫color factory being是这个类型,但是实际上呢,我们来按照这个ID,我们按照他们之前的这个color factor being按照这个ID获取到的时候呢,获取的却是咱们这个啊,我们创建的这个对象啊,工厂的获取的是调用,调用咱们这个get object方法创建的对象,哎,我们看到了,哎,它会调用这个get object创建对象,那么呢,我们现在又是控制它是单实例的,我们来看,我来获取多次,来获取多次,这两个宾是否一样呢?
05:32
B2等等,B3找,哎,你看这两个是一模一样的,那么呢,我们如果把它改为多实例,我们在这个factory being,好,那创建的时候呢,我把这个处改为false,改为多例,我们来进行测试,走,哎,我们发现它就不一样了,而且呢,我们每一次获取都会调用这个get object,我们获取了两次,调用两次来得到我们这个实例对象,所以呢,这是我们的作用,而且呢,在spring与其他框架在整合,或者在做一些啊其他整合的时候,这个翻being啊用的特别多,所以说呢,这个也值得我来学习注意一下,但是我们说虽然呢,看起来注册的是color factor being,但是。
06:32
实际上获取的是color对象,那我就想要拿到这个factor being,就想要拿到它本身能不能呢?哎也可以,我们在这获取的时候打开测试类,我们在这按照ID获取,获取的时候呢,给这个ID上来加一个and伏,哎,我们加一个前缀,这个前缀我们来获取,来看一下,这是out,第一我们来把这个类型打印一下,B4GET glass我们来看走来我们看到就得到了color翻拼音,为什么加这个前缀呢?其实这个spring啊,在我们这有一个叫音翻,我们创建音的这个工厂,哎,它会定义过这个的一个前缀,就说我们加这个前缀是不是就知道是工厂的本身。
07:32
也就是说呢,我们通过加一个and的前缀能获取到默认,默认获取到的是工厂兵创建的对象,调用get object创建的对象,当然了,我们要获取工厂兵本身本身,然后呢,本身。
08:03
我们需要给ID前面加一个and标识,哎,就是这哎,我们这样子获取,这样子就能获取到工厂B本身了,这就是我们这个工厂B的用法。
我来说两句