EJB3 単純な値をインジェクトしてみる。
JBoss 4.2.3で検証。
@Stateful
@Name("playListManager")
@Scope(ScopeType.SESSION)
public class PlayListManagerAction implements PlayListManager {
@Resource(name = "home.dir")
private String homePath;
@Nameは、Seamのアノテーションなので、無視の方向で。@Statefulにname属性を指定すると、なんかSeamが動かなくなるのでやめた。ejb-jar.xmlは以下のように指定。
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
version="3.0">
<enterprise-beans>
<session>
<ejb-name>PlayListManagerAction</ejb-name>
<env-entry>
<env-entry-name>home.dir</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>Hello</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
...
</ejb-jar>
まぁ、昔に比べればマシにはなっているけど、やっぱりXMLで、この手の設定を書くのは苦痛だ。Groovyあたりで書けるようにならんものか。





