可以在无状态 ejb 中使用静态最终映射来保存状态吗?

Is it ok to have static final map in stateless ejb to save sate?

无状态 EJB 不应具有用于保存状态的非最终静态字段,因为这在具有多个 JVM 的分布式应用程序中不起作用。但是,如果我们在 EJB 中有一个静态最终映射来保存一些关于我们的分布式应用程序状态的参数,那就没问题了,映射上的更新是否对单独 JVM 上的应用程序可见运行?

无状态 EJBS 背后的全部意义在于它们很便宜,因为它们不需要在分布式环境中复制。

因此,您的静态最终地图中的任何状态更改都不会被复制。

为此,您最好使用分布式缓存,例如 EhCache、Infinispan 甚至 memcache。