【问题标题】:What happens with injects after session bean passivation?会话 bean 钝化后注入会发生什么?
【发布时间】:2014-01-20 13:57:49
【问题描述】:

假设我们有一个@SessionScoped bean,它有一个被@Inject 注入的属性。构造 bean 时,此注入成功。现在由于会话有一段时间没有使用,bean 被序列化到磁盘并从内存中删除。一段时间后会话再次被使用,bean 从磁盘反序列化并重新实例化。该属性的类型是不可序列化的类。

注入的属性会发生什么? 他们保持为空吗? 他们会再次被注射吗?

我找不到有关此用例的任何具体信息。

【问题讨论】:

    标签: jakarta-ee cdi


    【解决方案1】:

    实际注入的不是属性本身,而是它的动态代理。这意味着当您的 @SessionScoped bean 被反序列化并再次使用时,该属性将再次解析。有关详细信息,请参阅this post。它是特定于焊接的,但可以让您很好地了解发生的情况。然而,它是规范强制要求的(参见spec 的第 5.4 节),因此其他实现也会这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 2014-10-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      相关资源
      最近更新 更多