bijection (JBoss Seam)
JBossSeamのソース勉強中。JBoss Seamにはinjectionを越えたbijectionという概念があるらしい。
ふつーのDIコンテナは、コンテナがコンポーネントを構築する時に依存性を注入する。だからステートフルなコンポーネントへのDIはいまいち。bjectionの場合は、以下の特徴によりステートフルなコンポへのDIを自在なタイミングで行う
コンテキスト依存
コンポーネントには自身のライフサイクルに合わせたスコープをアノテートすることが可能。いろんなスコープに対応して階層化されたコンテキストが、アノテーションの情報を元にコンポーネントにDIを仕掛ける。コンテキストというのは、WebSessionContext(HTTPセッション)とかWebRequestContextとか。
リクエスト情報からオブジェクト組み立てたりするのもDIの延長線上として実現してるのでは(わかりづらい表現)
追記
例えば@InをActionのインスタンス変数につけておくと、リクエストがオブジェクト(EntityBeanというかPOJO)にマッピングされてActionに注入される。DIと利用方法が統一されているのがミソ?