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
на тот случай должно быть все что мне нужно.