为什么在销毁有状态EJB时使实例变量无效?

时间:2012-05-06 19:21:24

标签: java java-ee ejb javabeans stateful

在有状态EJB上的@remove注释的示例中,带注释的方法使bean的实例变量无效。为什么?当然破坏豆子会破坏它的内容,即任何变量?

谢谢, 乔恩

3 个答案:

答案 0 :(得分:3)

将对象的所有字段设置为null有两个有用的效果:

  • 它为逻辑错误提供了一个强大的障碍,导致无效的对象被重用。应用程序崩溃而不是无声地产生不正确的结果。

  • 它通过从对象引用图中删除边缘来帮助Java VM垃圾收集器,从而提高整体性能。

答案 1 :(得分:2)

您可以发布示例源代码吗?或者不。不需要主动设置null - 当EJB被销毁并且很快收集垃圾时,它引用的所有对象(当然也提供没有其他引用)也将被垃圾收集。

答案 2 :(得分:0)

如果ejbRemove(),实例的属性被擦除干净,客户端仍然引用实例。客户端仍然可以访问同一个对象。这是不可取的。