[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 メーリングリストの案内