用FactoryBean初始化的Bean接收到FactoryBean而不是由它创建的Obect

问题描述 投票:0回答:1

我正在尝试使用xml引用另一个bean,发送一个由FactoryBean生成的对象。我的问题是,由beanFactory生成的数据显然是一个FactoryBean对象,并且没有该工厂应该创建的类型。

bean的定义如下:

<bean id="daFactoryBean" class="com.whatever.something.MyFactoryBean">
    [...]
</bean>

<bean id="theBeanThatProducesProblems" class="com.whatever.something.AGoodName">
    <constructor-arg ref="daFactoryBean"/>
    <constructor-arg ref="anotherBean"/>
</bean>

请注意,“ daFactoryBean”将产生类型为“ TheClassIWantToProduce”的对象。并且“ theBeanThatProducesProblems”期望在“ daFactoryBean”上使用该类型,但它会接收Factory本身。

factoryBean的定义如下:>

public class MyFactoryBean implements 
FactoryBean<TheClassIWantToProduce> {
FactoryBean([..]) { [...] }
[...]
@Override
public TheClassIWantToProduce getObject() { [...] }
}

我需要产生的类是这个

public AGoodName extends RestTemplate { 
    AGoodName(TheClassIWantToProduce foo, AnotherClassThatDoesnTComeFromAFactory foo2){
    }
}

事实是,我不知道怎么说弹簧的xml,我希望工厂生产的对象而不是工厂本身。由于类型无效,因此预期值未初始化。有任何提示吗?

我正在尝试使用xml引用另一个bean,发送一个由FactoryBean生成的对象。我的问题是,由beanFactory生成的数据显然是一个FactoryBean对象,并且...

java spring javabeans factory
1个回答
0
投票

解决了,我必须创建一个使用工厂bean的子bean

© www.soinside.com 2019 - 2024. All rights reserved.