gpt4 book ai didi

java - 我可以在 ejb 3.1 单例中定义非最终静态字段吗

转载 作者:行者123 更新时间:2023-12-01 15:22:36 24 4
gpt4 key购买 nike

根据 EJB 规范,不允许使用非最终静态字段。对于定义为单例的 EJB 3.1 无状态 session bean 来说,情况仍然如此吗?

只是为了让事情更清楚并防止出现诸如为什么要这样做的问题:

我有一种情况,我需要一个 EJB 来开始服务器启动工作,做一些与数据库相关的工作,只有当它完成时,它才会向系统中的所有其他组件发出信号,表明它们可以开始工作。

此 EJB 还将使用计时器进行定义,因此它将每隔几分钟启动一次,因此,如果第一次失败,它将重试,直到成功,或者直到有人注意到存在问题。一旦成功,标志将被更改并且所有其他组件(计时器 EJB)都可以启动。

所以我有一个 Singleton EJB,我需要它来保存所有其他组件/EJB 都可以引用的静态(全局)标志。

最佳答案

非最终静态字段仍然被禁止,因为一旦尝试集群应用程序就会遇到问题。 EJB 单例只是它们运行的​​服务器实例上的单例。如果您有两个服务器实例,则可以在静态字段中拥有两个版本的单例,并具有不同的值。

如果您需要全局标志,最好将其存储在数据库中。

关于java - 我可以在 ejb 3.1 单例中定义非最终静态字段吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10681886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com