5

アノテーション付きメソッドを呼び出すと@Remove、クライアントがステートフル EJB のインスタンスをもう必要とせず、呼び出し後に削除できることを EJB コンテナーに通知することを理解しています。

ただし、Oracle JEE チュートリアルでは、このメソッドを使用してインスタンスを「クリーン」にします。たとえば、ここを参照してください。

@Stateful
public class CartBean implements Cart {
    // ...
    List<String> contents;
    // ...
    @Remove
    public void remove() {
        contents = null;
    }
}

( https://docs.oracle.com/javaee/6/tutorial/doc/bnbod.htmlより)

メンバーList<String> contents;はに設定されてnullいますが、これを行う理由がわかりません。インスタンスが削除された場合、これらの種類の参照はすべて削除されませんか?

インスタンスが解放されたときにいくつかのビジネス タスクを実行する必要があると想像できますが、メソッドの呼び出し後は、それらのタスクを実行できる@Removeいくつかのメソッドを多かれ少なかれ直接呼び出します。@PreDestroyでは、なぜ@Removesth like だけでなく、メソッドにこの特別なメカニズムがあるのでしょうか。EJBContainer.remove(myBean)

アノテーションの目的を明確にしてください@Remove。また、このメカニズムが必要な理由が明らかなわかりやすいユースケースの例をいくつか挙げていただけますか?

4

1 に答える 1