该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点
面试官:说一说Spring的BeanFactory和FactoryBean的区别和联系
- 区别:
- BeanFactory是一个工厂接口,主要负责管理和创建Bean实例。它是Spring提供的最底层的容器接口,提供了基本的Bean管理功能,例如获取Bean实例、销毁Bean等。它的主要实现类是XmlBeanFactory和DefaultListableBeanFactory。
- FactoryBean是一个Bean接口,用于创建和管理特定类型的Bean实例。它是一个更高级别的抽象,允许用户自定义Bean的创建逻辑。FactoryBean实现类是一个特殊的Bean,它可以将自己注册到容器中,并通过getObject方法返回特定类型的Bean实例。
- 联系:
- BeanFactory可以管理和创建FactoryBean的实例。当我们在配置文件中定义一个FactoryBean时,实际上是将FactoryBean本身交给了BeanFactory来管理,而不是FactoryBean创建的那个Bean实例。我们通过getBean方法获取FactoryBean时,BeanFactory会自动调用FactoryBean的getObject方法创建并返回特定类型的Bean实例。
- FactoryBean可以通过BeanFactory来获取