Remplacement com.google.inject avec javax.inject
-
27-10-2019 - |
Question
Est-il vrai que les annotations de javax.inject peuvent fonctionner en remplacement direct pour com.google.inject?
Alors que, si je l'ai remplacé toutes mes annotations actuelles Guice / gin avec ceux de javax.inject, mon application serait compiler et exécuter très bien?
Tout d'abord, ne couvre javax.inject toutes les bases que la couverture google.inject?
La solution
Oui, cela fonctionnera très bien. En fait, l'auteur de Guice (Bob Lee) est une spécification plomb pour la spécification javax.inject
.
javax.inject.Inject
ne possède pas l'attribut optional
, donc si vous voulez une dépendance en option, vous auriez à utiliser l'annotation Guice.
Autres conseils
En fait, je l'ai choisi de se abstenir de passer à javax.inject, parce que je trouve la spécification beaucoup plus minimalistes par rapport à ce Guice offre (que j'utilise):
- comme mentionné par @Bozho
-
@ImplementedBy
ce qui est très utile lorsque vous voulez réduire le nombre de liaisons explicites (pour la clarté du code) et quand vous voulez être en mesure de passer outre facilement la@ImplementedBy
par défaut de liaison si vous avez besoin (par exemple pour les tests d'intégration).
@Optional
Il y a probablement d'autres, mais pour moi ces 2 sont showstoppers déjà.
Voir JSR-330 sur l'intégration site de Guice.
La question est assez vieux, mais ... Pour votre information:. Vous pouvez automatiquement apiwave
En apprenant avec les changements passés, nous voyons que com.google.inject.Inject
peut être remplacé par javax.inject.Inject
.