两者区别:
**BenaFacory:**里面的方法
**FactoryBean:**里面的方法
很明显 FactoryBean的方法相对于BeanFactory的方法简单很多
例子:
写好类:
关于获取的方法:
注意 获取那个 对象如果实现了factoryBean 需要加& 符号才能获取到
而直接用name 则会获取到 你实现那个方法的类
总结
为什么要加 &
源码:
而我们执行完成后一级缓存里面放的是没有& 的;
那为什么 取的时候需要进行加&
原因是 取的时候 会进行处理 为factoryBean把&去除
存放的位置
我们目前执行到这一步:
通过xml注入的 肯定是放在了 一级缓存了里面了(针对本次的案列)
补充一个集合 注意集合大小:
我们发现 我们自己的那个User并没有
我们继续往下执行
此时 数据会加入到这个集合之中:
补充
如果factorybean设置为不是单列
集合中不会存放:
当然两次的地址也是不一样的:
显然地址不一样