4

我有一个名为让我们说 A 有这样一个二传手的类:

//class A
@Inject
public void setAProvider(Provider<B> b)
{
    this.b = b;
}

当我只想拥有一种 A 实例时,它适用于 javax.inject 和注释配置。我的问题是我想要有两个 A 类实例,一个Provider<B1>带有Provider<B2>. 我的问题是如何在 Spring xml 配置中表达我的要求?

4

1 回答 1

1

其实这里简单回答一下,你需要ProviderCreatingFactoryBean

这是一个例子:

<bean id="a" class="a.b.b.A" scope="prototype">
    <property name="xxx" value="15000"/>
</bean>

<bean id="b" class="a.b.b.B" scope="prototype">
    <property name="zzz" value="-1"/>
</bean>

<bean id="providerOfA" class="org.springframework.beans.factory.config.ProviderCreatingFactoryBean">
    <property name="targetBeanName" value="a"/>
</bean>

<bean id="providerOfB" class="org.springframework.beans.factory.config.ProviderCreatingFactoryBean">
    <property name="targetBeanName" value="b"/>
</bean>

<bean id="barServiceA" class="a.b.c.BarService">
    <property name="provider" ref="providerOfA"/>
</bean>

<bean id="barServiceB" class="a.b.c.BarService">
    <property name="provider" ref="providerOfB"/>
</bean>
于 2015-05-07T20:35:37.943 回答