Spring указывает правильные ссылки на bean-компоненты в качестве аргументов метода фабрики - PullRequest
5 голосов
/ 27 января 2011

Как указать правильные ссылки на bean-компоненты, Когда я использую шаблон метода фабрики Abstrarct с Spring.

Я получаю ошибки аргументов конструктора в Spring dispatcher-servlet.xml.

ошибки:

Неоднозначные типы аргументов метода фабрики - вы указали правильные ссылки на bean-компоненты в качестве аргументов метода фабрики?

короткий диспетчер-сервлет.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

Ответы [ 2 ]

3 голосов
/ 27 января 2011

Если ваша фабрика findCategory использует заданное перечисление, то Spring сделает все за вас.

* 1003 например *

public class enum X { A, B }
public CategoryFactory findCategory( X someX ) 

сейчас весной

<constructor-arg value="A" />
1 голос
/ 21 октября 2011
  1. Ленивая инициализация компонента, если это возможно
  2. Если вы хотите использовать фабричный метод и без передачи аргументов конструктора в конфигурации компонента, используйте

    <constructor-arg><null/></constructor-arg> 
    

    указать нулевые аргументы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...