为什么使用静态工厂类实例化bean时,只需要一行配置,而实例工厂初始化时需要两行配置?

为什么使用静态工厂类实例化bean时,只需要一行配置,而实例工厂初始化时需要两行配置?

老师你好,为什么使用静态工厂类实例化bean时,可以直接配置factory-bean方法,而实例工厂初始化bean时需要写两个配置才行?这样的话,谁还会使用实例工厂的方式呢,因为它比静态工厂多了一行配置,相对复杂点


<!--静态工厂初始化bean,只需要一行配置就可以了-->

<bean id = "bean2" class="com.imooc.ioc.demo2.Bean2Factory" factory-method="createBean2"></bean>

<!--实例工厂初始化bean需要两行配置才行-->
<bean id = "bean3Factory" class = "com.imooc.ioc.demo2.Bean3Factory"></bean>

<bean id = "bean3" factory-bean = "bean3Factory" factory-method = "createBean3"></bean>

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,实际的开发中根据具体的需要决定使用哪种模式,更多的是使用构造方法实例bean。如果实体类中有属性,但是没有提供带参构造方法时,就必须使用工厂模式实例对象。

祝:学习愉快~

好帮手慕阿满 2019-09-12 14:18:25

同学你好,使用静态工厂方法来创建Bean实例时,Spring将先解析配置文件,并根据配置文件指定的信息,通过反射调用静态工厂类的静态工厂方法,并将该静态工厂方法的返回值作为Bean实例。实例工厂方法又称为工厂方法模式:先初始化工厂类也就是配置工厂实例,然后再进行工厂中方法的初始化。根据不同的需求决定实用哪一种模式。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕仔3163040 #1
    老师你好,感谢热心解答。请问一下,实例工厂方法初始化bean的具体应用场景是什么?什么样的场景下使用实例工厂方法比使用构造方法初始化有优势,帮忙举一个具体的例子吧
    2019-09-12 14:45:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师