我正在学习Guice,但我不太清楚如何使用Injector
实例。最好在应用程序启动时创建Injector
实例,并将其公开为单例?
那么我们总是必须使用Injector#getInstance(SomeClass.class)
来获取放置了Guice的@Inject
注解的类吗?
RealBillingService
不使用注射器获取 CreditCardProcessor
和 TransactionLog
的实例。相反,在创建实例时,Guice 会为您处理所有这些内容。RealBillingService
,每个服务都有用于注入CreditCardProcessor
和TransactionLog
对象的@Inject
注释。因此,我需要为每个服务像RealBillingService
一样使用Injector#getInstance
。但是我想在不同的地方创建这些服务,所以我有两种选择:在每个地方创建Injector
对象并使用Injector#getInstance
来检索必要的服务,或者创建Injector
实例一次并使其可访问(全局单例)到我需要它的所有地方。 - WelcomeTo@Inject
注释)。然后,您将使用Injector
获取此第三个对象的单个实例。 - conditinjector
。如果你正在使用Jersey
和Guice
,例如,你可以配置你的模块然后框架会处理剩下的部分。 - conditInjector
实例? - WelcomeToInjector#getInstance
吗? - WelcomeTo
Injector.getInstance()
。 - millimoose@Inject
注释字段的类必须使用Injector#getInstance(MyClass.class)
进行检索。那么如果我有多个带有@Inject
注释字段的类呢?我需要使用Injector#getInstance(ClassName.class)
来初始化每个类。 - WelcomeToInjector.injectMembers(this)
。据我所知,我需要在每个具有@Inject
注释的类中调用此方法? - WelcomeTo