[Seasar-user:1634] Re: DI コンテナのインスタンス管理(instance属性のouterについて)
Yasuo Higa
higa
2005年 3月 16日 (水) 17:24:02 JST
<[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:1633] DIコンテナのインスタンス管理(instance属性のouterについて)" において、
"豊島 正規 <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> はじめまして。豊島と申します。
>
outerで指定するのは、DIして欲しいのコンポーネントです。
hogeは、DIされる側では。
> ■diconファイル
> <components>
> <component name="hello" class="tech.di.HelloImpl" instance="prototype">
> <property name="hoge">hoge</property>
> </component>
>
> <component name="hoge" class="tech.di.Hoge" instance="outer" />
> </components>
>
> ■IHello.java
> public interface IHello {
> void showMessage();
> }
>
> ■HelloImpl.java
> public class HelloImpl implements IHello {
> private Hoge hoge;
>
> public void showMessage() {
> hoge.print();
> }
>
> public void setHoge(Hoge hoge) {
> this.hoge = hoge;
> }
> }
>
> ■Hoge.java
> public class Hoge {
> private String message;
>
> public Hoge(String message) {
> this.message = message;
> }
>
> public void print() {
> System.out.println(message);
> }
> }
>
> ■main
> public class DISample {
> public static final String PATH = "tech/di/sample.dicon";
>
> public static void main(String[] args) {
> Hoge hoge = new Hoge("こんにちは Seasar");
>
> S2Container container = S2ContainerFactory.create(PATH);
> container.injectDependency(hoge, "hoge");
>
> IHello helloObject = (IHello)container.getComponent(IHello.class);
> helloObject.showMessage();
> }
> }
>
Seasar-user メーリングリストの案内