BeanFactory和FactoryBean的区别

BeanFactory和FactoryBean的区别

1、 BeanFactory

      BeanFactory是IOC容器的核心接口,是一个工厂类(接口), 它负责生产和管理bean,它为其他具体的IOC容器提供了最基本的规范,Spring容器给出了很多种实现。例如:

DefaultListableBeanFactory,
XmlBeanFactory,
ApplicationContext 等具体的容器都是实现了BeanFactory

BenFactory源码:

 2、FactoryBean

FactoryBean是一个接口,是一种工厂beanSpring中共有二种bean,一种是普通bean(就是上面说的BeanFactory管理的bean),另一种是实现FactoryBean接口的Bean。FactoryBean管理的Bean实际上也是由spring进行管理、实例化,配置,

当在IOC容器中的Bean实现了FactoryBean后,通过getBean(String BeanName)获取到的Bean对象并不是FactoryBean的实现类对象,而是这个实现类中的getObject()方法返回的对象。要想获取FactoryBean的实现类,就要getBean(&BeanName),在BeanName之前加上&

factoryBean源码:

原文地址:https://www.cnblogs.com/JonaLin/p/12661172.html