Есть ли javax.inject.* Эквивалентный @Assisted

Мы смотрим на использование аннотаций JSR-330 javax.inject.* Вместо эквивалентов com.google.inject.*. Похоже, стандарт JSR-330 не включает в себя несколько функций, которые я полюбил в Guice.

В частности, я не вижу поддержки для ключевого слова @Assisted. А как насчет @AssistedInject? Можно ли разместить @Inject на нескольких конструкторах?

Я заинтересован в том, чтобы быть независимым от производителя, но не за счет удобных функций. Любые рекомендации?

2 ответа

Решение

@Assisted только для Guice. Вы можете использовать его с JSR 330 @Inject, Если вам не нужна зависимость от Guice, выполните ручную инъекцию, внедрив в код интерфейс фабрики.

В ответ на один из ваших вопросов:

Можно ли разместить @Inject на нескольких конструкторах?

от Javadoc

Инъецируемые конструкторы аннотируются @Inject и принимают ноль или более зависимостей в качестве аргументов. @Inject может применяться не более чем к одному конструктору на класс.

Поэтому я думаю, что ответ - нет.

Другие вопросы по тегам