Cómo se pueden especificar las referencias de beans correctas, cuando utilizo el patrón de método de fábrica Abstrarct con Spring.Spring especifique las referencias de beans correctas como argumentos de método de fábrica
Obtengo errores en los argumentos del constructor en el Spring dispatcher-servlet.xml
.
los errores:
fábrica tipos de argumentos método ambiguas - ¿Ha especificado las referencias correctas de frijol como argumentos del método de fábrica?
corta despachador-servlet.xml
<bean id="myFactory" class="cwsei.spring.dao.CategoryFactory" factory-method="findCategory">
<constructor-arg type="java.lang.Enum" value="${categoryType}" />
</bean>
Aquí está mi código:
public abstract class Category {
public abstract List list(int departId);
..
}
public class CategoryFactory {
public enum CategoryType { firstclass,secondClass,...}
public static Category findCategory(CategoryType categoryType) {
...
}
}
Gracias, mkohan
no quiero iniciar un valor para el argumento. Quiero que el método abstracto de fábrica pase ese valor en tiempo de ejecución. ¿Tengo que iniciar un valor para el argumento? – mkohan
Todo Spring está en tiempo de ejecución. Sospecho que se refiere a la sustitución de variables, simplemente elimine el atributo type de la etiqueta constructor-arg. – harschware
Cambié a esto: Obtuve estos errores: Error al crear bean con el nombre 'myFactory' definido en el recurso ServletContext: dependencia insatisfecha expresada a través del argumento constructor con índice 0 de tipo [CategoryFactory $ CategoryType]: No se pudo convertir el valor del argumento de método de fábrica de tipo [java.lang.String] al tipo requerido [CategoryFactory $ CategoryType]: Error al convertir el valor de tipo 'java.lang.String' al tipo requerido'CategoryFactory $ CategoryType '; –
mkohan