spring工厂方法和factory bean有什么区别?

我是新泉。在Bean标签中,我找到了factory-method和factory-bean Attributes。factory-

method和factory-bean有什么区别?

我正在使用工厂方法调用getInstance静态方法来创建单例对象。

工厂豆有什么用?


对于给定的答复,我的理解是

工厂方法用于调用静态方法以在同一bean类中创建对象。

Factory-bean用于基于工厂设计模式创建对象。

例如:-我通过传递我的蔬菜名称(在这种情况下为EggPlant),从VegetableFactory(这将返回被询问的蔬菜对象)类中询问EggPlant对象。

如果我输入错误,请更正?

回答:

工厂方法工厂

设计模式之间的区别基本上是相同的,在底部有一点说明。一种是用于获取特定类的实例的方法,另一种是负责创建对象的完整对象,其中包括创建对象所需的所有逻辑。

FactoryBean的界面文档指出:

由BeanFactory中使用的对象(本身就是工厂)实现的接口。如果bean实现此接口,则它将用作对象公开的工厂,而不是直接用作将自身公开的bean实例。

另外,此对象 ,而是通过其getObject方法用作实例提供程序。


更新资料

搜索factory-methodover的使用FactoryBean,似乎它经常与遗留的singleton

bean一起使用,以获取基础实例,但是这种方法不提供对初始化方法的支持,例如,用于init初始化给定集合的方法属性。

在这种情况下,您要么必须在使用该类之前自己调用它,要么定义一个用于处理初始化的包装器,或者使用诸如之类的其他机制MethodInvokingFactoryBean


更新2

严格来说,a

FactoryBean是用来管理特定类型的。实际上,您将拥有一个EggPlantFactory,而不是一个,VegetableFactory因为接口getObject定义的方法FactoryBean不支持参数。

以上是 spring工厂方法和factory bean有什么区别? 的全部内容, 来源链接: utcz.com/qa/419577.html

回到顶部