Подтвердить что ты не робот

Замена com.google.inject с помощью javax.inject

Верно ли, что аннотации javax.inject могут функционировать как прямые замены для com.google.inject?

Итак, если я заменил все мои текущие аннотации guice/gin на те, что из javax.inject, мое приложение будет компилироваться и работать просто отлично?

Во-первых, делает ли javax.inject все базы, на которые распространяется google.inject?

4b9b3361

Ответ 1

Да, все будет хорошо. На самом деле автор guice (Bob Lee) является спецификацией для спецификации javax.inject.

javax.inject.Inject не имеет атрибута optional, поэтому, если вам нужна дополнительная зависимость, вам нужно будет использовать аннотацию guice.

Ответ 2

На самом деле, я решил воздержаться от перехода на javax.inject, потому что я нахожу spec очень минималистичным по сравнению с тем, что предлагает Guice (который я использую):

  • @Optional как указано @Bozho
  • @ImplementedBy, что очень полезно, если вы хотите уменьшить количество явных привязок (для ясности кода) и когда вы хотите легко переопределить привязку по умолчанию @ImplementedBy, если вам нужно (например, для тестов интеграции).

Есть, вероятно, другие, но для меня эти 2 уже являются showstoppers.

Ответ 4

Вопрос довольно старый, но... FYI: вы можете автоматически проверить, что на apiwave.

Изучая прошлые изменения, мы видим, что com.google.inject.Inject можно заменить на javax.inject.Inject.