Spring-BeanFactory和FactoryBean的区别

BeanFactory 和 FactoryBean

共同点:

  • 都是用来创建对象的

不同点:

  • FactoryBean类 实现接口FactoryBean

    • 实现getObject()
      • 在这里可以自定义自己的返回对象的方法, 可以反射也可以 new
      • 等于是一个定制化的 Factory
    • 实现getObjectType()
    • 实现isSingleton()
    • FactoryBean 的调用地点: 获取 beanDefinition 的时候判断isFactoryBean(beanName) 就通过自己的方法来获取 bean
  • BeanFactory 相当于流水线