У меня есть метод провайдера в модуле, аннотированный с помощью @Provides:
@Provides
public ChatServicePerformanceMonitor getChatServicePerfMon() {
...
}
и я аннотировал мой ChatServicePerformanceMonitor с @Singleton. В моем коде, где я использую этот экземпляр, я не могу заставить его "пассивно" вводить его из-за рамки, которую я использую для построения охватывающего класса (он не использует Guice, так что это единственный способ, которым я знаю для получения справки):
chatServicePerfMon = injector.getInstance(ChatServicePerformanceMonitor.class);
Кажется, что Guice не уважает аннотацию @Singleton в моем классе ChatServicePerformanceMonitor. Я получаю экземпляр для каждого вызова инжектора .getInstance(ChatServicePerformanceMonitor.class).
Добавление метода @Singleton к методу провайдера, похоже, исправляет это:
@Provides @Singleton
public ChatServicePerformanceMonitor getChatServicePerfMon() {
...
}
Это ожидаемое поведение? Кажется, @Singleton на экземпляре должен быть всем, что мне нужно.