[Seasar-user:429] Re: assembleAutoBy*

B isid.co.jp Yasuo Higa higa
2004年 3月 4日 (木) 13:15:18 JST


<[E-MAIL ADDRESS DELETED]> の、
   "[Seasar-user:421] assembleAutoBy*" において、
   "Masataka Kurihara <[E-MAIL ADDRESS DELETED]>"さんは書きました:

ひがです。

> 栗原です。
> 
>   一人で風速あげてますが、気がついたことを最後にひとつ。
> 
>   引数のあるコンストラクタを持つコンポーネントでArgDef
> をきちんと設定しないと、コンポーネントを取得する時に
> ComponentDefImpl#assembleAutoByConstructor() に処理が
> 移りますが、ここでネストした getComponent() にて、
> 引数型のコンポーネントが見つからないと実行時例外の
> ClassNotFoundRuntimeException です。このとき例外の出方
> が予想しない場所で予想しないコンポーネント検索をしてる
> ところなので、キャッチしておいて違う「引数がきちんと設
> 定されてない」旨を告げる例外を再生成するようにしたほう
> が良いかと思います。あと #assembleAutoByProperties()。
>   コンテナが String 型のコンポーネントを探し始めたとき
> は仰天しました(^^;
> 
了解です。
EA2には、自動バインディング(Springのautowire)の種別として、
auto:デフォルト(現状どおり:コンストラクタ -> プロパティ)
constructor:コンストラクタのみ
property:プロパティのみ
none:なし
を追加する予定です。

後、自動バインディングの対象は、インターフェースの場合だけに
しようと思ってます。
intやStringコンポーネントを探しに行かないように(^^;

>   プラス提案です。Tapestry では例外発生時のレポート機能
> が良くできていて、フレームワーク上で例外発生したときに
> フレームワークが出すエラーページに、スタックトレースや
> そのときのHTTPリクエスト内容や環境変数などを表示するほ
> かに、例外オブジェクトのプロパティをリフレクションによ
> って全部列挙して表示してくれます。これにより、例外の原
> 因追求をしやすくなっています。
>   Seasarも例外をきちんとフレームワーク独自に定義してま
> すので、それらの例外クラスに、原因追求しやすくなるよう
> なプロパティを追加していてくれると便利です。すでに、S2
> では丁寧なメッセージを出力するようにはなってるんですけ
> どね。

がってん。
最近追加された例外クラスは、プロパティを設定するようにしているけど、
初期のやつは、メッセージだけでプロパティがないやつもあるので、
対応しときます。
---
Yasuo Higa <[E-MAIL ADDRESS DELETED]>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.



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