[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 メーリングリストの案内