現在、EJB 2.0 から 3.0 への移行に取り組んでいます。古いセッション Bean は、xdoclets を使用していくつかの設定を行いました。
ほぼ全て理解できますが、一つ気になることがあります。@ejb.ejb-ref
以下のコードのような方法で誰かが使用するのはなぜですか。
/**
* @ejb:bean name="SomeBean"
* local-jndi-name="com/my/jndi/SomeBean"
* view-type="local" type="Stateless"
*
* @ejb.ejb-ref ejb-name="SomeBean"
* view-type="local"
*
* ..some more stuff here
*/
public class SomeBean implements SessionBean {
// class body here
}
@tags
この xdoclet には、weblogic を構成するためのものを含め、他にもいくつかあります ( ) @weblogic
。
Bean 自体への参照を追加したい理由はありますか? 2 番目の質問ですが、この構成は ejb3 でも必要ですか?
この@weblogic
タグがこの種の参照を使用する必要がある場合があることをどこかで読んだような気がしますが、もう一度見つけることができません。本当ですか?
@編集
そのようなクラスの作成者の 1 人と話した後、Bean メソッドの 1 つが所有するクラスのインスタンスへの参照を使用して 2 番目のメソッド (新しいトランザクションを必要とする可能性がある) を呼び出すときに、そのような自己参照が使用される可能性があることがわかりました。
アップグレード後、以下のようなものに置き換えることができます。
@Stateless
public class SomeBean implements IBeanLocal {
@EJB
IBeanLocal someBean;
// class body here
}
私の混乱は主に、この種の自己参照の不必要な使用によって引き起こされました。Steve C が指摘したように、おそらく誰かがこの xdoclet 機能の使用方法を知らなかったのでしょう。