Google guice ではインジェクト生成の結果としてシングルトンになることを目的に
@Singleton がある。
この方法ではなく!
古くからあるJavaシングルトン生成時に、Goole guice を使ってみたくなった。
private コンストラクタに、@Inject を付ける。
例として、以下のように。でも、無意味な気もする。
public final class Asingle{
private static Asingle inst;
private Properties prop;
@Inject
private Asingle(Properties prop){
this.prop = prop;
// 引数にインジェクトされたものを受け取る
}
public final static synchronized Asingle getInstance(){
if (inst==null){
Injector injector = Guice.createInjector(new AbstractModule(){
@Override
protected void configure(){
// @Inject コンストラクタ に対して
// 働くバインド実行を記述
}
}
/* ,new AbstractModule(){ ... }
* ↑必要であれば追加
*/
);
inst = injector.getInstance(Asingle.class);
}
return inst;
}
:
}