如果是factorybean直接就返回这个实例了,并没有调用getObject方法
来源:8-2 夺取doGetBean之从缓存获取Bean
![](http://img1.sycdn.imooc.com/user/5b8cea6a00010a6f02000200-100-100.jpg)
weixin_慕姐4531818
2020-06-30
protected Object getObjectForBeanInstance(
Object beanInstance, String name, String beanName, @Nullable RootBeanDefinition mbd) {
// 是否是factorybean? 判断方法为是否以&开头11 Don't let calling code try to dereference the factory if the bean isn't a factory.
if (BeanFactoryUtils.isFactoryDereference(name)) {
//nullbean
if (beanInstance instanceof NullBean) {
return beanInstance;
}
//乱取beanname ?
if (!(beanInstance instanceof FactoryBean)) {
throw new BeanIsNotAFactoryException(beanName, beanInstance.getClass());
}
if (mbd != null) {
mbd.isFactoryBean = true;
}
return beanInstance;
}
写回答
1回答
-
翔仔
2020-07-30
同学好,确实是这样的,如果你是把FactoryBean当作Bean实例来获取的话,因为在getBean里面加了&前缀
00
相似问题