setterインジェクションの配列サポート
これまで、あるコンポーネントが複数のコンポーネントを必要としたとき、addXxx(Xxx xxx)みたいなメソッドを作って、initMethodタグで追加していました。
ただ実際に開発していると、対象となるクラスを追加するたびに、diconファイルを修正する必要があり、めんどくさく思ってました。修正し忘れだとかもあるし。なによりも開発中に設定ファイルを書く量が増えていくってSeasarらしくない!!!
それで、setterメソッドの引数が配列で、配列の要素がインターフェースの場合、自動的にそのインターフェースを実装しているコンポーネントをDIするようにします。例えば、
のようなメソッドを定義しておくと、インターフェースXxxを実装しているコンポーネントを自動でDIするのです。自動でDIさせたくないときは、@Binding(bindingType=BindingType.None)のように指定すればOKです。
public void setXxxs(Xxx[] xxxs);