インスタンス管理を変えてみる
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]
で、実行。
おー、毎回ちゃんと生成されてる。
生成されたよ
生成されたよ
呼ばれたよ
呼ばれたよ