我正在学习Guice,我不清楚如何使用Injector
实例。最好在应用程序引导程序上创建一次Injector
实例,并使其成为公共单例?
我们总是必须使用Injector#getInstance(SomeClass.class)
来获取我们推出Guice的@Inject
注释的类吗?
答案 0 :(得分:7)
您不应将注射器作为全局单例传递。你看过:https://github.com/google/guice/wiki/GettingStarted了吗?请注意,RealBillingService
不会使用注入器来获取CreditCardProcessor
和TransactionLog
的实例。相反,Guice在创建实例时会为您处理所有这些。
如果您需要Guice创建许多相同类型的对象,请考虑使用Provider并注入该提供程序。