spring-BeanFactory与FactoryBean

"本文探讨了FactoryBean与BeanFactory的区别,通过实例展示如何在Spring框架中正确获取FactoryBean对象,并解释了"&"符号在获取过程中的作用。还涉及了对象存放位置和多例FactoryBean的处理。"
摘要由CSDN通过智能技术生成

两者区别:

在这里插入图片描述
**BenaFacory:**里面的方法
在这里插入图片描述
**FactoryBean:**里面的方法
在这里插入图片描述
很明显 FactoryBean的方法相对于BeanFactory的方法简单很多

例子:

写好类:
在这里插入图片描述

关于获取的方法:

在这里插入图片描述
注意 获取那个 对象如果实现了factoryBean 需要加& 符号才能获取到
而直接用name 则会获取到 你实现那个方法的类

总结

为什么要加 &

源码:
在这里插入图片描述
在这里插入图片描述
而我们执行完成后一级缓存里面放的是没有& 的;在这里插入图片描述
那为什么 取的时候需要进行加&
原因是 取的时候 会进行处理 为factoryBean把&去除
在这里插入图片描述

在这里插入图片描述

存放的位置

我们目前执行到这一步:
在这里插入图片描述

通过xml注入的 肯定是放在了 一级缓存了里面了(针对本次的案列)
在这里插入图片描述
补充一个集合 注意集合大小:
在这里插入图片描述

我们发现 我们自己的那个User并没有
我们继续往下执行
在这里插入图片描述
此时 数据会加入到这个集合之中:
在这里插入图片描述

补充

如果factorybean设置为不是单列
在这里插入图片描述
集合中不会存放:
在这里插入图片描述
当然两次的地址也是不一样的:
在这里插入图片描述
显然地址不一样
在这里插入图片描述

总结:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值