java - 干净的代码、无状态 session bean 和私有(private)状态

标签 java coding-style ejb-3.0 java-ee-6 ejb-3.1

根据 Robert C. Martin 的干净代码,方法应该有一个小签名。最好的情况是完全没有参数的方法。相反,建议使用状态变量。这真的很有用。但是无状态 session bean 呢?

这个名字有点令人困惑,因为 SLSB 可以有状态。您只需要进行内务处理,这样您就不会使用之前 EJB 调用的状态。

回到干净的代码:我也喜欢在 SLSB 中使用实例变量。这工作正常,如果您足够小心,您不会遇到任何状态不一致的问题,因为状态在每次公共(public)方法调用时都会被覆盖。

到目前为止一切顺利。但是,如果用过的 bean 返回到池中会怎样?它带着它的状态。根据状态的大小,这可能是真正的内存泄漏。 JBoss 对 bean 非常慷慨,并生成了很多 bean,导致了一些严重的内存消耗——没有任何好处。

因此,一种方法是在 bean 方法存在之前清理状态并将 bean 返回到池中。但在我看来,这是应该避免的无用代码。

有没有合适的方法来处理这个问题?这种情况下的最佳做法是什么?

最佳答案

让生活变得简单,只需传入参数。即使您可以做其他事情,从无状态 EJB 的意图来看,很明显您不应该

以零参数为目标的 FWIW 对我来说似乎很愚蠢。是的,以少数为目标,但是为了自己的利益而努力为零是愚蠢的。

关于java - 干净的代码、无状态 session bean 和私有(private)状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299592/

相关文章:

java - 如何获取JTable的RowSorter使用的排序键的列?

java - 使用 Spring RestTemplate for Android 发出经过身份验证的 POST 请求

java - 我可以在 Apache Commons Config 中同时使用数组和非数组吗?

java - 如何保护 GlassFish 2 上的 Web 服务?

java - Swing 中的规划 View 组件

c# - 一个方法应该有多少条返回语句?

c# - 使用隐式类型的局部变量

coding-style - TODO 公约从何而来?

ejb-3.0 - 在 WebLogic 10.3.5 上使用 Arquillian 进行 @EJB 注入(inject)不起作用

java - SimpleDateFormat 将字符串转换为日期