Annotation DI

昨日の日記で「Seasar4では設定ファイルすら不要になる」という点に言及しましたが設定ファイル無しで動作するDIコンテナということで一つ気になったことがあります。

DIコンテナ内がどのような状況にあるかを予め確認する手段がない?

従来は設定ファイルである.diconなりなんなりがDIコンテナ内のコンポーネントの登録状況やインスタンス構成を表している一種のオブジェクトグラフだったわけですが設定ファィルが無い場合にそれを確認するには

アノテーションが施されているソースコードを追う
・実行時にDIコンテナに問合わせる(hasComponentDefとか?)

これしかない?(私が気づいてないだけかも)のは不便なような気がします。むろん自らが全てのコンポーネントを登録して使うような閉じたアプリケーションであれば不便は無いでしょうが、例えば他のクラスで予めDIコンテナに登録されているコンポーネントを引き継いで使う場合に登録済みのコンポーネントの情報を事前に掴むためにソースコードを追うのはちょっと面倒な気がします。

とはいうものの、そのようなケースでは無難に設定ファイルを使うのが筋なのでしょうね。

追記:Convention over Configuration
なるほど "Convention over Configuration"ですか。オープンソースなのですからそういう希望は有りですよね。