「ステートレスEJBフィールド」は、ステートレスEJBへの参照です。
ただし、EJBインスタンスを直接参照するものではありません。参照されるオブジェクトは、EJBの場合はproxy
です。
コンテナは、そのプロキシを介してメソッドを呼び出すたびに、EJBのインスタンスへの参照を作成するか、そうでなければ取得し、それを呼び出します。コンテナにはこれらのEJBインスタンスのプールがあるため、EJBインスタンスを迅速に取得できます。結局のところ、彼らはStateless
であるため、これを行うことができます。
お持ちの場合:
public class Foo {
@EJB
private Bar myStatelessEJB;
public void doSomething() {
myStatelessEJB.eat();
myStatelessEJB.something();
}
}
その後myStatelessEJB
の各呼び出しがBar
の完全に異なるインスタンスを呼び出すことができます。
したがって、EJBへの参照をどのくらい保持しても違いはありません。コンテナは呼び出し間で完全に忘れてしまったり、他のクライアントのためにプールに戻したりすることがあります。
興味深い。たとえば、シングルトンのリファレンスを保持することは、私が思ったような恐ろしい練習ではありませんか? – Faerindel
何ですか? [@ javax.ejb.Singleton](https://javaee.github.io/javaee-spec/javadocs/javax/ejb/Singleton.html)?あなたはこれらについて尋ねなかった。 –
いいえ、私は手で書かれた普通のものを意味します。 – Faerindel