내 @singleton이 작동하지 않는 이유는 무엇입니까?
문제
Guice의 @Singleton을 시도 할 때 문제를 해결했습니다.
import com.google.inject.Singleton;
@Singleton
public class ConfigManager {
private String data;
public void setData(String data) {
this.data = data;
}
public String getData(){
return this.data;
}
public static void main(String[] args){
ConfigManager config1 = Guice.createInjector().getInstance(ConfigManager.class);
ConfigManager config2 = Guice.createInjector().getInstance(ConfigManager.class);
config1.setData("data");
System.out.println(config2.getData());
}
}
이 간단한 샘플이 항상 null을 인쇄하는 이유는 무엇입니까?
해결책
싱글 톤은 JVM이 아닌 인젝터에 전 세계적입니다. 당신은 당신의 코드를 계속해서 조정하고 싶을 것입니다 :
Injector injector = Guice.createInjector();
ConfigManager config1 = injector.getInstance(ConfigManager.class);
ConfigManager config2 = injector.getInstance(ConfigManager.class);
제휴하지 않습니다 StackOverflow