Автопроводка бобов - PullRequest
       8

Автопроводка бобов

0 голосов
/ 03 августа 2011

Я создал несколько бинов для проверки объекта:

<!-- RES rules engine -->
<bean id="rules-execution-server-engine"
    class="util.res.RuleEngineRESJSE">
    <constructor-arg index="0" value="util.res.rulesengine.log" />
</bean> 

  <bean id="rio-object" class="UROImpl">
  </bean>

<bean id="trade-validator-context"
    class="rule.trade.TradeValidationContext">
    <constructor-arg index="0" ref="rio-object" />
</bean>

<bean id="trade-validator"
    class="validator.RESTradeValidator">
    <constructor-arg index="0" ref="trade-validator-context" />
    <constructor-arg index="1" ref="validation-rules-helper" />
</bean>

<bean id="validation-rules-helper"
    class="util.res.RESRulesHelperImpl">
    <constructor-arg index="0" value="rule.traderules.loc" />
    <constructor-arg index="1" ref="rules-execution-server-engine" />
</bean>

Я могу успешно вызывать и создавать их с помощью основного метода. Однако сейчас я пытаюсь интегрировать этот код в другие мои модули. Компонент trade-validator реализует интерфейс, который выглядит следующим образом:

public interface IValidator {

public Object validate(Object obj) throws ValidationException;

}

Я надеюсь позвонить через интерфейс:

validator.validate(rioObject);

Однако это вызывает проблемы, так как я не могу создать экземпляр интерфейса, и из XML вы можете увидеть, что фактическое требует двух других bean-компонентов для его конструктора. Я искал подход с автопроводкой. Но я все еще справляюсь с этим.

Есть ли способ указать его на боб как на валидатор для использования? В качестве атм валидатор равен нулю.

1 Ответ

0 голосов
/ 03 августа 2011

Моя рекомендация состоит в том, чтобы не использовать autowire для больших развертываний и самостоятельно подключать бины.

Кстати, почему вы не можете создать экземпляр валидатора торговли?Какую ошибку вы получаете?

Однако это вызывает проблемы, так как я не могу создать интерфейс и из XML

...