2015-11-03 8 views
0

В моем проекте я использую сварные швы. У меня проблема с инъекцией "GroupedExchangeAggregationStrategy" в один из моих конструкторов. У этого объекта нет конструктора аргументов по умолчанию. Beans.xml настроен на обнаружение «всех». Но я получаю unsatisfied dependency for type GroupedExchangeAggregationStrategy.CDI Мне нужен производитель для объектов со стандартным конструктором?

Нужно ли мне создать производителя, чтобы просто вернуть new GroupedExchangeAggregationStrategy()? Или что еще может вызвать проблему?

(Проект уже использует множество @Produces и классификаторов. Так что КДИ материал работает в целом.)

ответ

1

Вы правильно.

Если вам нужна инъекция сторонних классов (например, от Apache Camel в вашем случае), лучшим способом является создание Producer method. Значение по умолчанию будет @Dependent.

+0

Это слишком плохо, но спасибо. Я пришел из google guice injection, и guice может вводить все классы с помощью конструктора 0-arg. – dermoritz

+0

@dermoritz, пожалуйста, исправьте меня. Я вас неправильно понял, но Guice в основном такой же. Поскольку вам все равно придется писать строку 'bind (GroupedExchangeAggregationStrategy)' или написать однострочный метод создания. CDI здесь не отличается. –

+2

нет, если я непосредственно вставляю «GroupedExchangeAggregationStrategy», если я хочу ввести AggregationStrategy, тогда мне нужно привязать. – dermoritz

 Смежные вопросы

  • Нет связанных вопросов^_^