7

私は以下のようなシナリオに出くわしました:

MyBean - XML 構成で定義されています。

MyBean を複数のスレッドに注入する必要があります。しかし、私の要件は次のとおりです。1)2つの異なるスレッドで取得される参照は異なる必要があります2)しかし、単一のスレッドからBeanを取得する回数に関係なく、同じ参照を取得する必要があります。

例:

Thread1 {

    run() {
        MyBean obj1 = ctx.getBean("MyBean");
        ......
        ......
        MyBean obj2 = ctx.getBean("MyBean");
    }
}

Thread2 {

    run(){
        MyBean obj3 = ctx.getBean("MyBean");
    }
}

だから基本的にobj1 == obj2だけどobj1 != obj3

4

2 に答える 2

10
于 2013-02-04T14:56:44.677 に答える
2

必要なのは、新しいThread Local カスタム スコープです。独自に実装するか、ここで使用することができます。

カスタム スレッド スコープ モジュールは、スレッド スコープ Bean を提供するためのカスタム スコープ実装です。Bean に対するすべてのリクエストは、同じスレッドに対して同じインスタンスを返します。

于 2013-02-04T14:56:35.793 に答える