문제

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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top