[Seasar-user:2167] Re: injectDependencyについて
Koichi Kobayashi
koichik
2005年 6月 10日 (金) 02:46:17 JST
小林 (koichik) です.
On Fri, 10 Jun 2005 02:30:21 +0900
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:
> そんなわけで (どんなわけで?),S2ContainerBehavior というのを
> でっちあげてみました (ソースを添付してます).
これによって昨夜の [Seasar-user:2153] がどうなったかをお見せします.
今回はカスタムなコンテナではなくカスタムな S2ContainerBehavior を作成.
----------------------------------------------------------------------
public class MyContainerBehavior extends S2ContainerBehavior.DefaultProvider {
public ComponentDef acquireFromInjectDependency(S2Container container, Object key) {
ComponentDef cd = getComponentDef(container, key);
if (cd == null && key instanceof Class) {
cd = new ComponentDefImpl((Class) key);
cd.setContainer(container);
cd.setInstanceMode(ContainerConstants.INSTANCE_OUTER);
cd.init();
}
return cd;
}
}
----------------------------------------------------------------------
# 昨夜のと違って,TooMany の時は例外になりますが,そこは主題じゃないので...
そして s2containerbuilder.dicon 改め s2container.dicon
----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components>
<component class="custom.MyContainerBehavior"/>
</components>
----------------------------------------------------------------------
随分すっきりしましたね.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内