1

いくつかのステートレス Bean と、その Bean によって呼び出されるいくつかのサービス クラスがあります。そのサービス クラスに Bean インスタンスを直接渡すことはできません。

現在実行中の Bean インスタンスを取得する方法はありますか? ビーンインスタンスをどこかに保存するためにインターセプターと関連ロジックを書く必要はないので、既存のメカニズムがあるかどうかは疑問です。

もう少し詳しく言うと:

public class MyBean implements MyBeanInterface, CommonBeanInterface {
     public void businessMethod() {
         SomeService service = ... // service is somehow obtained
         service.doWork();
     }
}

public class SomeServiceImpl implements SomeService {
     public void doWork() {
          CommonBeanInterface currentBean = getCurrentBean(); // its implementation I need
     }
}

したがって、サービス クラスでは、このサービスを呼び出した Bean インスタンスを取得する必要があります。

どんな情報でも役に立ちます!

4

1 に答える 1

1

そのサービスを呼び出した Bean を識別する API はないと思います。ただし、サービスが Bean と同じコンテナーにある場合 (つまり、リモート呼び出しが含まれていない場合) は、同じスレッドで実行されることに注意してください。そのため、ThreadLocal を使用して情報を渡すことができます。

于 2013-02-03T18:26:33.267 に答える