Robert C. Martin によるクリーンなコードによると、メソッドには小さな署名が必要です。最良のケースは、パラメーターをまったく持たないメソッドです。代わりに、状態変数を使用することをお勧めします。これは本当に便利です。しかし、ステートレス セッション Bean はどうでしょうか。
SLSB は状態を持つことができるため、名前はちょっとわかりにくいです。以前の EJB 呼び出しからの状態を使用しないように、ハウスキーピングを行うだけで済みます。
きれいなコードに戻る: SLSB でもインスタンス変数を使用したいと思っています。これは問題なく動作し、十分に注意すれば、パブリック メソッドの呼び出しごとに状態が上書きされるため、状態の不一致に問題はありません。
ここまでは順調ですね。しかし、使用済みの Bean がプールに戻ったらどうなるでしょうか。それはそれと共にその状態を取ります。状態のサイズによっては、これが実際のメモリ リークになる可能性があります。JBoss は Bean に非常に寛大であり、非常に大量の Bean を生成して深刻なメモリ消費を引き起こします。
したがって、1 つの方法は、Bean メソッドが存在し、Bean がプールに返される前に状態をクリーンアップすることです。しかし、これは避けるべき無駄なコードのように思えます。
この問題に対処する適切な方法はありますか? この状況でのベストプラクティスは何ですか?