FactoryBean 就是 生产 Bean 的 Bean 它的目的就是创建一个对象
示例1 一个简单的例子
FactoryBean 就是 让我们自己 来创建一个对象
但是就像上面的例子中那样, 如果你那样使用,FactoryBean是没有多大的好处
什么时候使用?
问题就在这里, 如果这里的创建步骤特别复杂,或需要计算后 才能得到一个对象。就可以使用
示例2 根据指定数据创建对象
当创建对象的过程复杂时可使用BeanFactory,调用方只需要注入就可使用
问题: 既然是根据一些数据创建对象,为什么非要写到FactoryBean中,而不是直接写一个方法 Car getObject(Data)
如果这么使用 貌似非要用FactoryBean的理由也没有了
我理解的FactoryBean使创建对象操作 更加语义化
源码
factoryBean会在容器初始化的时候 和其他普通bean一样 被创建
根据beanName获取其内部的bean
org.springframework.beans.factory.support.FactoryBeanRegistrySupport#doGetObjectFromFactoryBean
源码部分说的有些简陋了。