【发布时间】:2012-04-24 14:03:35
【问题描述】:
根据 Robert C. Martin 的 clean code 方法应该有一个小的签名。最好的情况是完全没有参数的方法。相反,建议使用状态变量。这真的很有用。但是无状态会话 bean 呢?
这个名字有点令人困惑,因为 SLSB 可以有状态。你只需要做你的家务,这样你就不会使用上一个 EJB 调用中的状态。
回到干净的代码:我也喜欢在 SLSB 中使用实例变量。这很好用,如果你足够小心,你不会遇到任何状态不一致的问题,因为状态在每个公共方法调用上都会被覆盖。
到目前为止一切顺利。但是如果一个用过的 bean 回到池中会发生什么?它带着它的状态。根据状态的大小,这可能是真正的内存泄漏。 JBoss 对 bean 非常慷慨,并生成了相当多的 bean,导致严重的内存消耗 - 没有任何意义。
所以一种方法是在 bean 方法存在并将 bean 返回到池之前清理状态。但在我看来,这似乎是应该避免的无用代码。
有没有合适的方法来处理这个问题?在这种情况下,最佳做法是什么?
【问题讨论】:
-
任何 DIY 方法维护的状态在集群面前都会失败,所以 JEE 不欢迎。并且为每个 bean 维护该状态的副本对我来说似乎也是错误的。
标签: java coding-style ejb-3.0 java-ee-6 ejb-3.1