Helloからsetterを削除してコンストラクタでlistを受けるようにします。
package test;
import java.util.List;
public class Hello {
private List<String> listNames;
public List<String> getListNames() {
return listNames;
}
public Hello(List<String> listNames) {
this.listNames = listNames;
}
public void sayHello() {
for (String name: listNames) {
System.out.println("Hello "+name+"! ");
}
}
}
example2.diconを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<component class="java.util.ArrayList" name="list">
<initMethod name="add"><arg>"Hoge"</arg></initMethod>
<initMethod name="add"><arg>"Piyo"</arg></initMethod>
</component>
<component class="test.Hello" name="hello">
<arg>list</arg>
</component>
</components>
Main.javaを一応載せておきます。
package test;
import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.SingletonS2ContainerFactory;
public class Main {
public static void main(String args[]) {
SingletonS2ContainerFactory.setConfigPath("example2.dicon");
SingletonS2ContainerFactory.init();
S2Container container = SingletonS2ContainerFactory.getContainer();
Hello hello = (Hello)container.getComponent("hello");
hello.sayHello();
}
}
以上
.
0 件のコメント:
コメントを投稿