インジェクションってなんだろう

って思うほど、Seamはスカスカ、バイジェクションしてくれます。最近は、もっぱらHTMLテンプレートばかりだったけど、たまにJSFタグ、elの記述に触れると、これもhtmlに対するインジェクションやーって思った。で、これはこれで仕様としても直感的でプログラマとしても読みやすかったりする。デザインとの分離という話はとりあえずおいておく。Seamの場合は、さらにjBPMの設定ファイルにもインジェクションする。

 <task-node name="task1">
  <task name="task1" description="#{paper.news}">
   <assignment actor-id="hogehoge"/>
  </task>
  <transition to="end"/>
 </task-node>

で、宣言はもちろん

@Name("paper")
public class Paper 
{   
 private String news;
 略   
}

で、コンテキストにpaperオブジェクトがのっていて、jBPMでタスクに遷移した際にjBPMのタスクインスタンスのdescriptionフィールドにpaper.newsの内容をインジェクションしてくれる。Seam-wayとして、こういうものなんだなぁと思った。不思議な感覚。ちなみにJboss-elはjavax.elパッケージの拡張なので、部分部分でJSF1.2, JSP2.1とは非互換。