Seasarを使ってみる その6

インスタンス管理を変えてみる

singletonだとマルチスレッドで困るかもしれないので、インスタンス管理を変えてみる。


[HogeImpl.java]
public class HogeImpl implements Hoge {

public HogeImpl() {
System.out.println("生成されたよ");
}

public void exec() {
System.out.println("呼ばれたよ");
}

}


[HogeClient.java]

import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;

public class HogeClient {

public static void main(String[] args) {
S2Container container = S2ContainerFactory.create("Hello.dicon");
Hoge hoge = (Hoge) container.getComponent("hoge");
Hoge hoge2 = (Hoge) container.getComponent("hoge");
hoge.exec();
hoge2.exec();
}
}


[Hello.dicon]





で、実行。


生成されたよ
生成されたよ
呼ばれたよ
呼ばれたよ
おー、毎回ちゃんと生成されてる。