Spring - FactoryBean 的使用场景和源码

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

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

猜你喜欢

转载自blog.csdn.net/weixin_42195284/article/details/109339203
今日推荐