ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Field Injection

EJB3のサポートに伴い、Seasar2でField Injectionをサポートします。使い方は、EJB3と同じでこんな感じ。

@EJB
private Foo foo;

この場合は、次の順序で対象となるコンポーネントを決定します。

@EJB(name="xxx")のように名前を指定した場合には、フィールド名の変わりに指定した名前が使われます。@Resourceも@EJBと同様です。
Field Injectionをdiconファイルで書く場合ですが、propertyタグをそのまま流用しようと思います。フィールド名とプロパティ名をあわせておけば、Kijimunaもそのまま使えるからです。(そのうち対応してね。 -> 松田さん)
Injectionするときのロジックは、プロパティ名と同じ名前のフィールドがあれば、Field Injectionそうでなければ、これまでと同様Setter Injectionをするようにします。
パラメータ情報を@Resourceを使って、設定するには、次のようにします。まず、フィールドを用意します。

@Resource
private int max;

次にdiconファイルで値を設定します。

<property name="max">10</property>

正月休み

私は、家にPCがないので、blog書いているということは、会社で仕事していることになります。お前、この前婚約したばかりとちゃうんかとご心配の方もいらっしゃるかもしれません。心配してくれた方ありがとう。
今回、彼女は、家族といろいろ話したいこともあるだろうと思って、ずっと田舎に帰しています。というわけで、一人でいるので、仕事してるか英語の勉強をしているかのどちらかです。
仕事に集中できる環境ですが、blogを書くことにエネルギーがさかれている気も。(笑)
JavaOneの日本語の原稿を1/3に仕上げて、1/4から英会話学校(Gaba)で週5,6回の特訓をはじめるので、実は全く余裕がありません。最近のEJB3に対する対応も、JavaOneを前にしてポジションをきちんとはっきりさせるという意味もあります。
JavaOneでセッションをもてるかどうかは、1/14に通知があるのですが、英語の原稿の締め切りが、2末なので先行して準備しています。2月は、デブサミRuby誕生日会(千葉PM未踏発表会)があるので、時間が思うように取れない可能性があるので。