面试题:Spring BeanFactory和FactoryBean的区别

  BeanFactory:以Factory结尾,表明它是一个工厂类(接口),它是Spring IOC容器的核心接口,负责实例化和管理bean的一个工厂,为具体的IoC容器的实现提供规范。BeanFactory并不是IoC容器的具体实现,但是Spring容器给出了很多种实现,如 DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext等。

  FactoryBean:以Bean结尾,表明它是一个Bean,不同于普通Bean,它主要负责创建Bean。其实现类ProxyFactoryBean负责为其它bean创建代理实例,用到了spring的AOP。

题外话:Spring容器类型

  Spring提供了两种不同的类型的容器:

  • BeanFactory容器:它是最简单的容器,属于基础类型IoC容器,提供依赖注入的基础支持。
  • ApplicationContext容器:它继承自BeanFactory,包括 BeanFactory 容器的所有功能,属于较高级的容器,所以推荐使用此容器。
posted @ 2021-03-21 20:12  楼兰胡杨  阅读(167)  评论(0编辑  收藏  举报