Замена com.google.inject на javax.inject - PullRequest
46 голосов
/ 20 октября 2011

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

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

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

Ответы [ 4 ]

41 голосов
/ 20 октября 2011

Да, все будет работать нормально. На самом деле автор guice (Боб Ли) - ведущий спецификаций спецификации javax.inject.

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

11 голосов
/ 21 октября 2011

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

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

Возможно, есть и другие, но для меня эти 2 уже являются демонстрацией.

6 голосов
/ 23 октября 2011
4 голосов
/ 30 апреля 2015

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

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

...