• Geek_18858f
    2020-01-10
    老师先是讲了BeanFactory然后讲了ObjectFactory, 18:48的时候突然讲到“如果这里改成FactoryBean” ??? FactoryBean之前讲过用过吗?感觉很突然,只能慢慢先看下去了。

    作者回复: 嗯,我这里提到的 FactoryBean,你可以参考一下第五十节:https://time.geekbang.org/course/detail/265-189606,里面有详细提到其中区别

    
     2
  • william
    2020-01-10
    小马哥,能讲讲factoryBean与beanFactory的区别吗?是只在于factoryBean在通过getObject()获取对象时都是新创建的吗?

    作者回复: FactoryBean 是一种特殊的 Bean,需要注册到 IoC 容器,通过容器 getBean 获取 FactoryBean#getObject() 方法的内容,而 BeanFactory#getBean 则是依赖查找,如果 Bean 没有初始化,那么将从底层查找或构建。

    
     1
  • 三产
    2020-01-06
    没有明白实时查找与延时查找相比,延时查找存在的必要性,因为延时查找并不是在查找时才会初始化 bean,没太明白这样做延时查找有什么意义,小马哥能给解惑下么?

    作者回复: 可以参考一下第五十节:https://time.geekbang.org/course/detail/265-189606,里面有详细提到其中区别

     1
     1
  • 十块钱
    2020-01-04
    xml文件为什么放在了meat inf下面有什么好处吗?记得之前是直接放在resources下面的

    作者回复: 我在视频中提到了一句话, 通常配置文件最好放在元数据目录,即 META-INF

     1
     1
  • Coding_Monkey
    2020-01-03
    一楼吗

    作者回复: 恭喜~

     2
     1
  • Mhy
    2020-02-05
    老师请问你18:43说的ObjectFactory没有生成新的Bean 指的是FactoryBean这个bean还是User这个bean,按我的理解是FactoryBean这个bean已经存在了,而User还未getObject所以没生成;是这样吗

    作者回复: 是的

    
    
  • Jenna
    2020-01-29
    学习啦~
    
    
  • 吃花的鱼
    2020-01-19
    ObjectFactoryCreatingFactoryBean ob = (ObjectFactoryCreatingFactoryBean) beanFactory.getBean("objectFactoryCreatingFactoryBean"); 这种根据名称查找编译直接报错,说类型转换错误。而根据类型查找确可以正确编译ObjectFactoryCreatingFactoryBean ob = (ObjectFactoryCreatingFactoryBean) beanFactory.getBean(ObjectFactoryCreatingFactoryBean.class); 这一点没搞懂,希望老师指点一下

    作者回复: 这个是 BeanFactory 实现决定,当 name 关联的 Bean 为 FactoryBean,实际返回的对象是 FactoryBean#getObject(),请参考 org.springframework.beans.factory.support.AbstractBeanFactory#getObjectForBeanInstance 方法。

    
    
  • 阿土
    2020-01-15
    18’56‘’对ObjectFactory跟FactoryBean的描述感觉错了呢

    作者回复: 这里是指 ObjectFactory 与 FactoryBean 是存在区别的,FactoryBean 的 getObject() 方法会框架调用,而 ObjectFactory 需要应用显示地调用。

     1
    
  • 阿土
    2020-01-15
    老师,实时查找跟延迟查找的区别、使用场景这些都没有讲,感觉还是蒙的

    作者回复: 延迟依赖查找主要用于获取 BeanFactory 后,不马上获取相关的 Bean,比如在 BeanFactoryPostProcessor 接口中获取 ConfigurableListableBeanFactory 时,不马上获取,降低 Bean 过早初始化的情况

    
    
  • 路阳
    2020-01-14
    感觉老师很多地方讲的很突兀,希望老师花费些时间进行改进!

    作者回复: 收到您的反馈,我尽可能将其关联起来,这也是一个难点,关于课程安排,我几乎花了一个月的时间,主要是技术之间相互关联,有些无法做到必然关联,会有部分脱节的部分,希望您看到后面可以得到一个整体的把握。

    
    
  • 梦倚栏杆
    2020-01-13
    <bean id="objectFactoryCreatingFactoryBean"
              class="org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean">
            <property name="targetBeanName" value="user"/>
        </bean>
    为什么把bean打印出来确实如下类型呢?
    org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean$TargetBeanObjectFactory

    TargetBeanObjectFactory 是ObjectFactoryCreatingFactoryBean 的内部类,是因为里面实现的方法决定的?为什么要这么绕一圈实现呢?
    展开

    作者回复: 这个是其中一种实现,之所以延迟,是为了让内部的 Bean 尽可能地充分初始化。

    
    
  • 梦倚栏杆
    2020-01-12
    我的放进去为什么会找不到路径呢?是需要什么配置吗?

    作者回复: 具体怎么写的呢?

     1
    
  • Planeswalker23
    2020-01-08
    关于[三产]同学的疑惑,我的理解是:ObjectFactory的延时查找可以用于自定义的创建实例策略,通过实现ObjectFactory接口。小马哥所举的ObjectFactoryCreatingFactoryBean指定了ObjectFactory返回的的对象是注入的user对象,所以看起来跟实时查找是一样的。举个例子,我可以在实现ObjectFactory接口的类中自定义getObject方法返回new User,这样每次通过ObjectFactory返回的就是一个新的实例。

    作者回复: ObjectFactory 对象并不是直接返回了实际的 Bean,而是一个 Bean 的查找代理。当得到 ObjectFactory 对象时,相当于 Bean 没有被创建,只有当 getObject() 方法时,才会触发 Bean 实例化等生命周期。

     2
    
  • 奥巴马
    2020-01-04
    加油!继续学习

    作者回复: 加油~

    
    
  • H
    2020-01-04
    小马哥,强

    作者回复: 过奖,共同进步~

    
    
我们在线,来聊聊吧