[Seasar-user:1751] Re: TooManyRegistrationRuntimeException : [ESSR0045]について

Hideaki Maekawa maekawa
2005年 4月 6日 (水) 14:30:15 JST


前川です。

> ■diconファイル
> 	<component name="b1" class="tech.di.BBB" />

この部分でインターフェイス(ICCC)による、自動バインディング
(BBB#setCCC)が動作します。

> 	<component name="c1" class="tech.di.CCC" />
> 	<component name="c2" class="tech.di.CCC" />

ところがICCCの実装クラスが複数ある為に例外が発生します。

> 	<component name="b2" class="tech.di.BBB">
> 		<property name="cCC">c2</property>
> 	</component>

こちらはプロパティを明示的に指定している為、コンポーネント名
によるインジェクションが動作する為大丈夫なわけです。

b1の方もプロパティを明示的に指定すれば、これが解決かはさてお
き、とりあえず例外は発生しないはずです。

#蛇足:一応autoBinding="none"という方法もありますが…

自動バインディングは便利な反面、知らない間にミスする可能性が
ある諸刃の剣なので、ドキュメントを良く読んで理解を深めること
をお勧めします。

--
株式会社フリーダム システム開発部
前川英昭 <[E-MAIL ADDRESS DELETED]>
0x2ED8CFD9 : 8E27 33DD 3480 C83A 15AD EB27 DC37 1DBE 2ED8 CFD9






Seasar-user メーリングリストの案内