gpt4 book ai didi

spring - 如何在 Spring 中向工厂 bean 的工厂方法添加参数?

转载 作者:行者123 更新时间:2023-12-03 01:22:12 25 4
gpt4 key购买 nike

假设我有一个工厂 bean:

<bean id="myFactory" class="com.company.MyFactory" lazy-init="true">
<property name="myProperty" ref="propA">
</bean>

假设 propA 是由 IOC 在工厂方法中注入(inject)的 bean。我有 2 个从这个工厂生成的 bean:

<bean id="bean1" factory-bean="myFactory" factory-method="instance"/>
<bean id="bean2" factory-bean="myFactory" factory-method="instance"/>

如何使 bean2 使用与 bean1 不同的 myProperty 而不使用不同的工厂方法?或者,如何将 propA 作为参数从 bean1 或 bean2 配置传递给工厂方法?

最佳答案

这可以通过稍微不同的方式来实现:

class MyFactory {
public Bean instance(MyProperty myProperty) {
return //...
}
}

现在您可以使用如下违反直觉的语法:

<bean id="bean1" factory-bean="myFactory" factory-method="instance">
<constructor-arg ref="propA"/>
</bean>
<bean id="bean2" factory-bean="myFactory" factory-method="instance">
<constructor-arg ref="propB"/>
</bean>

不管你信不信,propApropB 将用作 instance() 方法参数。

关于spring - 如何在 Spring 中向工厂 bean 的工厂方法添加参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com