[Seasar-user:1635] Re: DI コンテナのインスタンス管理(instance属性のouterについて)
豊島 正規
masaki-toyoshima
2005年 3月 16日 (水) 18:08:26 JST
豊島です。
早速の返信ありがとうございました。
> outerで指定するのは、DIして欲しいのコンポーネントです。
> hogeは、DIされる側では。
私の使い方が間違っていたようですね、失礼しました。
もう一度やってみたところ、うまく出来ました。
ありがとうございました。
On Wed, 16 Mar 2005 17:24:33 +0900
Yasuo Higa <[E-MAIL ADDRESS DELETED]> wrote:
> <[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 mailing list
> [E-MAIL ADDRESS DELETED]
> http://lists.sourceforge.jp/mailman/listinfo/seasar-user
>
------------------------------------
京セラコミュニケーションシステム(株)
大阪支社 ITソリューション事業本部
基盤開発部 大阪フレームワーク開発課
豊島 正規
内線:8827-478、8827-535
外線:06-6399-5302
Seasar-user メーリングリストの案内