根据 Robert C. Martin 的干净代码,方法应该有一个小签名。最好的情况是完全没有参数的方法。相反,建议使用状态变量。这真的很有用。但是无状态会话 bean 呢?
这个名字有点令人困惑,因为 SLSB 可以有状态。你只需要做你的家务,这样你就不会使用上一个 EJB 调用中的状态。
回到干净的代码:我也喜欢在 SLSB 中使用实例变量。这很好用,如果你足够小心,你不会遇到任何状态不一致的问题,因为在每个公共方法调用上都会覆盖状态。
到目前为止,一切都很好。但是如果一个用过的 bean 回到池中会发生什么?它带着它的状态。根据状态的大小,这可能是真正的内存泄漏。JBoss 对 bean 非常慷慨,并且生成了相当多的 bean,从而导致了一些严重的内存消耗——一无所获。
因此,一种方法是在 bean 方法存在并将 bean 返回到池之前清理状态。但在我看来,这似乎是应该避免的无用代码。
有没有合适的方法来处理这个问题?在这种情况下,最佳做法是什么?