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



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

谢谢Jon

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

  • 它为防止逻辑错误提供了硬屏障,这些错误会导致无效对象被重用。应用程序将崩溃,而不是静默地产生不正确的结果。

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

你能发布示例源代码吗?或者不要。不需要主动设置null - 当 EJB 被销毁并在不久之后进行垃圾回收时,它引用的所有对象(当然前提是没有对它们的其他引用)也将进行垃圾回收。

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

最新更新