作者回复: 嗯,我这里提到的 FactoryBean,你可以参考一下第五十节:https://time.geekbang.org/course/detail/265-189606,里面有详细提到其中区别
作者回复: FactoryBean 是一种特殊的 Bean,需要注册到 IoC 容器,通过容器 getBean 获取 FactoryBean#getObject() 方法的内容,而 BeanFactory#getBean 则是依赖查找,如果 Bean 没有初始化,那么将从底层查找或构建。
作者回复: 可以参考一下第五十节:https://time.geekbang.org/course/detail/265-189606,里面有详细提到其中区别
作者回复: 我在视频中提到了一句话, 通常配置文件最好放在元数据目录,即 META-INF
作者回复: 恭喜~
作者回复: 是的
作者回复: 这个是 BeanFactory 实现决定,当 name 关联的 Bean 为 FactoryBean,实际返回的对象是 FactoryBean#getObject(),请参考 org.springframework.beans.factory.support.AbstractBeanFactory#getObjectForBeanInstance 方法。
作者回复: 这里是指 ObjectFactory 与 FactoryBean 是存在区别的,FactoryBean 的 getObject() 方法会框架调用,而 ObjectFactory 需要应用显示地调用。
作者回复: 延迟依赖查找主要用于获取 BeanFactory 后,不马上获取相关的 Bean,比如在 BeanFactoryPostProcessor 接口中获取 ConfigurableListableBeanFactory 时,不马上获取,降低 Bean 过早初始化的情况
作者回复: 收到您的反馈,我尽可能将其关联起来,这也是一个难点,关于课程安排,我几乎花了一个月的时间,主要是技术之间相互关联,有些无法做到必然关联,会有部分脱节的部分,希望您看到后面可以得到一个整体的把握。
作者回复: 这个是其中一种实现,之所以延迟,是为了让内部的 Bean 尽可能地充分初始化。
作者回复: 具体怎么写的呢?
作者回复: ObjectFactory 对象并不是直接返回了实际的 Bean,而是一个 Bean 的查找代理。当得到 ObjectFactory 对象时,相当于 Bean 没有被创建,只有当 getObject() 方法时,才会触发 Bean 实例化等生命周期。
作者回复: 加油~
作者回复: 过奖,共同进步~