我目前没有集群环境,但我对集群环境中的@ApplicationScoped
行为感到好奇。群集中是否只有一个,或者群集中每个JVM仍然只有一个?
我已经读过在
中为每个JVM创建@Singleton
How singleton is javax.ejb.Singleton in a clustered environment?
答案 0 :(得分:2)
@ApplicationScoped
的引用被代理,因此它们将由CDI容器正确解析。无论应用程序中存在多少个节点,都是如此;所有客户端请求都共享状态和实例。
答案 1 :(得分:1)
@ApplicationScoped
bean 不会被复制本身。
可能有一些容器或服务器复制这些 bean,但这不是 CDI 规范的一部分。默认情况下,bean 不会在 JVM 之间共享。 CDI 将为每个集群成员/jvm 创建一个唯一的代理。
Jakarta EE 旨在处理此问题(按规范)的部分是 EJB。