Guice: как вы настраиваете @Provides и @Singleton в модуле в этом случае?

У меня есть метод провайдера в модуле с пометкой:@Provides

@Provides
public ChatServicePerformanceMonitor getChatServicePerfMon() {
  ...
}

и я аннотировал мойChatServicePerformanceMonitor с@Singleton, В моем коде, где я использую этот экземпляр, я могуне хватит умапассивно" впрыснуть его, из-за рамок яЯ использую этоСоздаем включающий класс (он не использует Guice, так что это единственный известный мне способ получения ссылки):

chatServicePerfMon = injector.getInstance(ChatServicePerformanceMonitor.class);

Кажется, Guice не уважает@Singleton аннотация на моемChatServicePerformanceMonitor учебный класс. Я получаю экземпляр для каждого вызова injector.getInstance (ChatServicePerformanceMonitor.class).

Добавление@Singleton к методу провайдера, кажется, исправить это:

@Provides @Singleton
public ChatServicePerformanceMonitor getChatServicePerfMon() {
  ...
}

Это ожидаемое поведение? Кажется@Singleton на тот случай должно быть все что мне нужно.

Ответы на вопрос(3)

Ваш ответ на вопрос