我想知道在 CDI ( 和 ) 中应用不同的 bean 范围是如何@ApplicationScoped
工作@SessionScoped
的@RequestScoped
。我了解生命周期,但是这些存储在容器中的什么位置?我在 JSF bean 上使用这些注释。
这些 bean 是如何存储在服务器上的,服务器如何能够知道哪些 bean 属于谁。
例如是一个bean,它有一个@SessionScoped
存储在HTTPSession
幕后的对象?bean 是否@ApplicationScoped
存储在地图实例变量中ServletContext
?如果是这样,那么线程安全性如何。我想我误解了它,但如果有人能告诉我会发生什么,它们的存储位置(不同的范围),服务器如何能够知道哪些 bean 属于谁......就像还有其他 id (不仅是会话 ID)?
顺便说一句,我使用 Java EE 6 所有参考实现。