ひがやすを技術ブログ

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

getter injection

S2Containerにgetter injectionを追加します。これは、自分のライフサイクルと利用したいコンポーネントのライフサイクルが異なる場合に使います。
例えば、アクションがsingletonでフォームがrequestで管理されているとしましょう。setter injectionの場合、アクションが最初に作成されたときに、フォームが設定され、それっきりフォームはそのままですが、それは望んだことではありません。requestごとにフォームを設定して欲しいはずです。
こんなときに、getter injectionにすると、getXxx()にアスペクトが設定され、リクエストごとに適切なフォームを返します。記述は、propertyタグのgetter属性でおこないます。

<property name="xxx" getter="true"/>

getter injectionの場合、setterメソッドとプロパティに対応する変数は本当は必要ないのですが、テストを簡単におこなうために、用意しておいた方が良いでしょう。