如何指定正确的bean引用,当我使用带有Spring的Abstrarct工厂方法模式时。
我在Spring dispatcher-servlet.xml
上得到构造函数参数错误。
错误:
不明确的工厂方法参数类型 - 您是否将正确的bean引用指定为工厂方法参数?
short dispatcher-servlet.xml
<bean id="myFactory" class="cwsei.spring.dao.CategoryFactory" factory-method="findCategory">
<constructor-arg type="java.lang.Enum" value="${categoryType}" />
</bean>
这是我的代码:
public abstract class Category {
public abstract List list(int departId);
..
}
public class CategoryFactory {
public enum CategoryType { firstclass,secondClass,...}
public static Category findCategory(CategoryType categoryType) {
...
}
}
谢谢, mkohan
答案 0 :(得分:3)
如果你的findCategory工厂需要一个给定的枚举,那么Spring会为你完成所有工作。
e.g
public class enum X { A, B }
public CategoryFactory findCategory( X someX )
现在在春天
<constructor-arg value="A" />
答案 1 :(得分:1)
如果要使用工厂方法并且不在bean配置中传递任何构造函数参数,请使用
<constructor-arg><null/></constructor-arg>
指定空参数