Замена com.google.inject на javax.inject
-
27-10-2019 - |
Вопрос
Правда ли, что аннотации javax.inject могут функционировать как прямые замены для com.google.inject?
Так что, если бы я заменил все свои нынешние аннотации Guice/Gin на Anco And от javax.inject, мое приложение скомпилируется и работает просто отлично?
Во -первых, охватывает ли Javax.inject все основания, которые покрывают Google.inject?
Решение
Да, это будет работать нормально. Фактически, автор Guice (Bob Lee) является спецификацией для javax.inject
Технические характеристики.
javax.inject.Inject
не имеет optional
Атрибут, поэтому, если вы хотите дополнительную зависимость, вам придется использовать аннотацию Guice.
Другие советы
На самом деле, я решил воздерживаться от перехода на javax.inject, потому что я нахожу спецификацию намного минималистичной по сравнению с тем, что предоставляет Guice (что я использую):
@Optional
Как упоминалось @bozho@ImplementedBy
что очень полезно, если вы хотите уменьшить количество явных привязков (для ясности кода) и когда вы хотите легко переопределить по умолчанию@ImplementedBy
Привязка, если вам нужно (например, для интеграционных тестов).
Вероятно, есть другие, но для меня эти 2 уже являются шоу -стопперами.
Вопрос довольно старый, но ... к вашему сведению: вы можете автоматически Проверьте это на Apiwave.
Учившись с прошлыми изменениями, мы видим, что com.google.inject.Inject
может быть заменен на javax.inject.Inject
.