Spring и передача параметров фабричному методу во время выполнения

В документации метода context.getBean (имя, пользователь) сказано

Позволяет указать явные аргументы конструктора / фабричный метод arguments

но независимо от того, что я делаю (пробовал все), с наиболее логичной настройкой я получаю это, когда beans загружается во время инициализации:

org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'fileValidator' defined in
PortletContext resource
[/WEB-INF/classes/context/customer-form-portlet.xml]: Unsatisfied
dependency expressed through constructor argument with index 0 of type
[com.liferay.portal.model.User]: Ambiguous factory method argument
types - did you specify the correct bean references as factory method
arguments?
    org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'fileValidator' defined in
PortletContext resource
[/WEB-INF/classes/context/customer-form-portlet.xml]: Unsatisfied
dependency expressed through constructor argument with index 0 of type
[com.liferay.portal.model.User]: Ambiguous factory method argument
types - did you specify the correct bean references as factory method
arguments?

<bean id="fileValidator" 
      class="cz.instance.transl.validation.file.FileValidator" 
      factory-method="createInstance" />

private FileValidator(User user) {
    this.user = user;
}

public static FileValidator createInstance(User user) {
    return new FileValidator(user);
}

В комментарии говорится, что вы можете это сделать, но если вы укажете аргументы конструктора в определении этого bean-компонента в формате xml или нет, он не работает.

9
задан Alois Mahdal 3 August 2015 в 13:43
поделиться