ひがやすを技術ブログ

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

自動バインディングの改良

Seasar2.3までは、プロパティの型がインターフェースの場合、自動でDIしていましたが、DTOなどで、プロパティの型がListの場合、「対象のコンポーネントがないよ」のワーニングが出てうざったいとの指摘がありました。
それに対応するために、ComponentAutoRegisterでautoBindingを設定できるようにし、DTOの場合は、Noneを設定できるようにしたのですが、これだと、Seasar2.4から多用されるPageクラスでイベントを処理したいときに、他のコンポーネントが自動でDIされなくなります。
それに対応するために、プロパティの型がインターフェースであっても、CollectionやMapに代入可能な型である場合は、自動バインディングの対象からはずしました。