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 容器的所有功能,属于较高级的容器,所以推荐使用此容器。