当前位置: 代码迷 >> 综合 >> Spring - FactoryBean 的使用场景和源码
  详细解决方案

Spring - FactoryBean 的使用场景和源码

热度:94   发布时间:2024-03-09 19:22:27.0

FactoryBean 就是 生产 Bean 的 Bean  它的目的就是创建一个对象

 

 示例1 一个简单的例子

创建FactoryBean
获取创建的对象

 

 

FactoryBean 就是 让我们自己 来创建一个对象

 但是就像上面的例子中那样, 如果你那样使用,FactoryBean是没有多大的好处


 

什么时候使用?

问题就在这里, 如果这里的创建步骤特别复杂,或需要计算后  才能得到一个对象。就可以使用

 

示例2 根据指定数据创建对象

当创建对象的过程复杂时可使用BeanFactory,调用方只需要注入就可使用


 

问题: 既然是根据一些数据创建对象,为什么非要写到FactoryBean中,而不是直接写一个方法 Car getObject(Data)

如果这么使用 貌似非要用FactoryBean的理由也没有了

 

我理解的FactoryBean使创建对象操作 更加语义化

 

 

源码

factoryBean会在容器初始化的时候 和其他普通bean一样 被创建

根据beanName获取其内部的bean

org.springframework.beans.factory.support.FactoryBeanRegistrySupport#doGetObjectFromFactoryBean

 

 

源码部分说的有些简陋了。

 

 

 

  相关解决方案