guice injection dans une variable statique
J'Ai un doute à propos de guice injection.
Est-il possible d'injecter un @variable nommée valeur à une variable statique?
J'ai essayé
@Provides
@Named("emp.id")
public Integer getEmpId() {
return 2;
}
et a essayé d'injecter cette valeur à la variable statique comme
@Inject
@Named("emp.id")
private static Integer id;
Mais la id
valeur de retour nulle, Quand j'ai enlevé statique modificateur de l'id a donné de la valeur 1.
Ce qui se passe vraiment ici?
OriginalL'auteur Robin | 2015-02-14
Vous devez vous connecter pour publier un commentaire.
Guice ne pas injecter des champs statiques de par leur conception. Vous pouvez demande statique injection mais cela devrait être fait seulement comme une béquille:
Dans votre cas, vous pouvez l'ajouter à votre
configure
méthode pour avoir votre champ statique injecté par Guice:Si vous n'ajoutez pas cette l'Entier sera initialisé à null (par défaut).
Je n'ai aucune idée de pourquoi
id
a été fixé à 1 après avoir retiré le modificateur static, cependant. Semble qu'elle ait été fixée à 2 si votre Guice module a été correctement configurée.OriginalL'auteur condit
Je ne pense pas. Les travaux d'injection sur l'objet, la variable statique sur un type.
OriginalL'auteur Sigismundus