Comment utiliser Guice de l'Injecteur?

Je suis dans le processus d'apprentissage de Guice et je n'ai pas de comprendre clairement comment utiliser Injector instance. Il est préférable de créer Injector exemple une fois sur l'application de bootstrap, et de le rendre public singleton?

Et est-il vrai que l'on doit toujours utiliser Injector#getInstance(SomeClass.class) pour obtenir les classes où nous avons roulé Guice est @Inject annotations?

Il est préférable de ne pas utiliser Injector.getInstance() à tous.
mais qu'est-ce que d'autres façons de récupérer des classes gérées par Guice?
Les champs annotés avec @Inject devrait avoir le droit de classes disponibles "automagiquement". (En supposant que vous avez Guice gérer les classes qui ont besoin de l'injection de trop.) L'idée est que vous avez le conteneur de gérer à la fois vos dépendances, et les classes qui les utilisent, et seulement chercher une classe "main" de l'injecteur manuellement pour démarrer votre application. Vous devriez également envisager de relire le tutoriel, c'est l'Injection de Dépendance 101.
Oui, je l'ai lu avant de poser des question, mais la classe qui a les champs annotés avec @Inject doivent être récupérées à l'aide de Injector#getInstance(MyClass.class). Alors que faire si j'ai plusieurs classes avec des champs annotés avec @Inject? J'ai besoin de lancer chaque classe à l'aide de Injector#getInstance(ClassName.class).
Ah. Pas nécessairement. Si vous avez besoin d'appeler une méthode sur un d'une classe qui n'est pas géré par Guice. Alternativement, vous pouvez faire au lieu de Injector.injectMembers(this) et de remplir tous les champs annotés avec @Inject de la Injector même sur un objet non managé.

OriginalL'auteur MyTitle | 2013-02-12