[Seasar-user:2108] Re: injectDependencyについて
Masataka Kurihara
kurihara
2005年 6月 6日 (月) 17:33:16 JST
栗原です。
> hasComponent() / hasComponentDef() を使えば定義の有無はチェックできるので,
例外の出所を変えたいのは、S2ContainerImplの、
public void injectDependency(
Object outerComponent, Class componentClass) {
getComponentDef(componentClass).injectDependency(outerComponent);
}
public void injectDependency(
Object outerComponent, String componentName) {
getComponentDef(componentName).injectDependency(outerComponent);
}
において、ComponentNotFoundになっちゃうからです。NullConponentDefを
返してインジェクション処理をしたいのですね。外部のUtilではなくて、コンテ
ナの機能として定義無しのコンポーネントにouterインジェクションする方法
です。
ですから、先の振る舞いが変えようというのは、Whatではなく、HowToなので
そこには、こだわりありません。
public void injectDependency(
Object outerComponent, Class componentClass) {
ComponentDef def;
if(hasComponentDef(componentClass)) {
def = getComponentDef(componentClass);
} else {
def = NullComponentDef.getInstance();
}
def.injectDependency(outerComponent);
}
こういう感じでOKです。
--
株式会社グルージェント
栗原 傑享(くりはら まさたか)
渋谷区渋谷3-7-6 第6矢木ビル4F
TEL:03-5469-8869 FAX:03-5469-8879
URL:http://www.gluegent.com/
--
Seasar-user メーリングリストの案内