先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混
BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂
FactoryBean:以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的Id从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身, 如果要获取FactoryBean对象,可以在id前面加一个&符号来获取。

Spring中的Bean有两种。
一种是普通的bean,另外一种就是实现了org.springframework.beans.factory.FactoryBean<>接口的Bean

FactoryBean

当配置文件中的class属性配置的实现类是FactoryBean时,通过getBean()方法返回的不是FactoryBean本身,而是FactoryBean#getObject()方法所返回的对象,相当于FactoryBean#getObject()代理了getBean()方法。

举个简单的例子:

FactoryBean

FactoryBean

FactoryBean

FactoryBean

相关文章:

  • 2022-12-23
  • 2021-06-18
  • 2022-01-10
  • 2021-08-25
  • 2021-10-09
  • 2021-11-09
  • 2021-07-08
猜你喜欢
  • 2021-07-12
  • 2021-09-17
  • 2021-05-20
  • 2022-01-23
  • 2021-07-01
相关资源
相似解决方案