0

Замена com.google.inject на javax.inject

14

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

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

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

2 ответ(ов)

0

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

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

0

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

  1. @Optional, как упоминал @Bozho. Этот аннотационный механизм действительно полезен для удобства работы с опциональными зависимостями.

  2. @ImplementedBy. Это очень удобный инструмент, позволяющий сократить количество явных привязок, что повышает читаемость кода. Также он дает возможность легко переопределять стандартные привязки @ImplementedBy, если это необходимо (например, для интеграционных тестов).

Скорее всего, есть и другие возможности, но для меня эти два аспекта уже являются критически важными и явными причинами остаться на Guice.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь