我有一個Java類,我用它來實例化多個對象以用於測試用例。 在用於調用此類我的春天配置我有類似如下:BeanCreationException:找不到工廠方法
<bean id="myClass" class="com.foo.MyClass">
<constructor-arg ref="myBean" />
</bean>
<bean id="myBeanA" factory-bean="myClass" factory-method="getA" />
<bean id="myBeanB" factory-bean="myClass" factory-method="getB" />
<bean id="myBeanC" factory-bean="myClass" factory-method="getC" />
MyClass的不擴展任何東西。 我的問題是,調用方法MyClass.getA()
和MyClass.getB()
作品,但MyClass.getC()
並不總是拋出的方法BeanCreationException: No factory method found getC()
都不是靜態的,所有的人都是公開的。通過Spring jars進行調試我可以看到,當創建MyClass.getC()
的bean時,它在getLeafMethods()
時沒有選擇方法,但會找到方法getA()
和getB()
和Object方法,但是沒有其他類中的方法。有沒有人遇到過這樣的問題,或知道爲什麼它無法找到類中的所有方法?
我不能發佈實際的代碼,但這裏是它的簡單的版本:
public class MyClass {
private A a;
private int i;
public MyClass(D param) {
//initialize here
}
public A getA() {
return a;
}
public B getB() {
return new B(i++);
}
//I could invoke this in a static way
//however the same issue occurs either way.
public C getC() {
return new C();
}
}
這些方法應該是靜態的和公共的。發佈myClass。 –
請發佈工廠代碼 – Henry
發佈您的MyClass代碼。 getC()可能不會返回bean對象... –