我在带有注释的模块中有一个提供程序方法@Provides
:
@Provides
public ChatServicePerformanceMonitor getChatServicePerfMon() {
...
}
我已经ChatServicePerformanceMonitor
用@Singleton
. 在我使用这个实例的代码中,我不能让 guice “被动地”注入它,因为我正在使用一个构建封闭类的框架(它不使用 Guice,所以这是我知道的唯一方法获取参考):
chatServicePerfMon = injector.getInstance(ChatServicePerformanceMonitor.class);
似乎 Guice 不尊重我课堂@Singleton
上的注释。ChatServicePerformanceMonitor
每次调用 injector.getInstance(ChatServicePerformanceMonitor.class) 都会得到一个实例。
添加@Singleton
到提供者方法似乎解决了这个问题:
@Provides @Singleton
public ChatServicePerformanceMonitor getChatServicePerfMon() {
...
}
这是预期的行为吗?似乎@Singleton
我只需要一个实例。