Seasar2.3.3

しばらく2.2の環境ばかり触っていたのですが、現在のバージョンを勉強する時間が出来たので、色々触ってみました。componentのnameとフィールド名を合わせると自動でバインディングしてくれる機能は地味に便利ですね。これで、インターフェイスベースのバインディングをしてる場合にComponentがぶつかる問題はほとんど解決出来ます。
実際diconファイルを書いてみると・・・自動コンポーネント登録・自動アスペクト設定登録機能を使う場合、分割したdiconファイル毎に登録関連の設定をコピペするのがちょっと気になってきました。name属性による自動バインディングを活用して、あまり細かいレベルで分割しない方が、保守面を考えるといいのかな? ただ、元々予期せぬインターフェイス自動結合を防ぐ為に細かく分割してるので、トレードオフ関係が悩ましい・・・AspectAutoRegisterをフィールドに持って、initMethodでAutoRegisterにS2ContainerをセットしてregisterAllメソッドを実行するようなクラスを作って、それを各diconに定義し、共通Componentを登録するdiconの方にAspectAutoRegisterそのものを定義しておけば・・・Aspect関連の設定については使いまわしが可能かな? まだ試してませんが。
あと、命名規約で自動登録しているComponentを別の実装クラスに変更した場合、今まではdicon設定をコメントアウトすれば良かったんだけど、これからは自動登録除外設定していくことになるのかな? もし実装クラスの置き換えが多発した場合、diconへの記述量が増えそうなのを懸念していたのですが・・・そもそもクラス同士はインターフェイスでしか結合していないんだから、使わない方のクラスの名前を命名規約から外れるように変更してしまえばいいのか。どうも、こういう理由でソースを変更することに最初は抵抗感があったのですが・・・diconに定義を書かなくなれば、命名規約以外でクラス名に依存してる部分は(テストケース関連で実装クラスを見ているとかを除けば)何も無いんですよね。成る程・・・