2012-06-29 4 views
0

Я читаю Справочник по Arquillian, который очень хорошо написан, однако в главе, в которой говорится о настройке инъекции зависимостей, я не могу найти, где вы действительно указываете beans/bindings.Arquillian и CDI

Большинство примеров кода Arquillian CDI демонстрируют использование аннотации Java @Inject. Так что мне просто интересно, где я определяю эти beans/DI-сопоставления/привязки и как настроить Arquillian для их использования?

Весной DI вы указываете дескриптор компонента, например spring-config.xml. В Guice вы реализуете Module и определяете его метод configure(Binder). Как это выглядит в Аркильской земле при использовании javax.inject.Inject? Заранее спасибо.

ответ

2

Короткий ответ - нет необходимости определять отображения бобов в CDI, поскольку CDI работает исключительно с аннотациями. Вы можете добавить дополнительную информацию в конфигурационные файлы, но это обычно не требуется.

Длинный ответ лучше всего взять с this excellent introduction в CDI.

+0

Спасибо @jan groth (+1) - Итак, если мой тест интеграции в Arquillian имеет поле 'private @Inject Fruit fruit', и я хочу, чтобы интерфейс' fruit' был инъецирован экземпляром 'Apple' внутри контейнер, как мне настроить эту привязку? – IAmYourFaja

+0

'private @Inject Fruit fruit' если есть одна реализация Fruit,' private @Inject @Apple Fruit fruit', если их больше. Но вы должны пройти через упомянутое введение, это слишком много, чтобы объяснить здесь ... –

0

Я думаю, вам нужно использовать "Alternatives" CDI механизм

Альтернативы бобы, реализация которых является специфичным для конкретного клиентского модуля или сценария развертывания.

+0

Это не то, как альтернативы предназначены для работы. Использование xml для управления такой общей вещи было бы довольно ужасно. Правильный ответ: @jan groth –

+0

Хорошо, зачем тогда нужны альтернативы? :) – Tair

+0

Собственно, в контексте тестирования интеграции с Arquillian, как было упомянуто OP в комментарии к ответу @ jan, я думаю, что это действительно самый простой способ указать альтернативную реализацию компонента – Tair