diconファイルの値をプロパティファイルから設定する
昨日のWithout EJB勉強会で出た話題。SpringのPropertyPlaceholderConfigurer相当のことはOGNL式を使えばできるはずということ。
a.dicon
@java.lang.Thread@currentThread() .getContextClassLoader() .getResourceAsStream("nt/seasar/prop/a.properties") prop["name"] new java.net.URL(prop["url"]) prop["description"]
a.properties
name=taedium url=http://d.hatena.ne.jp/taedium/ description=taedium's diary
package nt.entity; import java.net.URL; public class Person { private String name; private URL url; private String description; public Person(String name, URL url, String description) { this.name = name; this.url = url; this.description = description; } public String toString() { return new StringBuffer() .append("name=").append(name).append(", ") .append("url=").append(url).append(", ") .append("description=").append(description).append(", ") .toString(); } }
package nt.seasar.prop; import nt.entity.Person; import org.seasar.framework.container.S2Container; import org.seasar.framework.container.factory.S2ContainerFactory; public class UsePropetyFileClient { private static final String PATH = "nt/seasar/prop/a.dicon"; public static void main(String[] args) { S2Container container = S2ContainerFactory.create(PATH); Person p = (Person)container.getComponent("person"); System.out.println(p); } }
実行結果
name=taedium, url=http://d.hatena.ne.jp/taedium/, description=taedium's diary,
できました。