首页 > 解决方案 > 处理多个注入的 @ConversationScoped bean 的正确方法

问题描述

我在一个 @ViewScoped bean 中注入了多个 @ConversationScoped bean,这导致了很多对话锁定问题。

为了纠正这个问题,在所有@ConversationScoped bean 中,我在开始新的对话之前添加了几行代码来结束现有的对话。

正如你在进入 begin() 时看到的那样,我将在开始新的对话之前结束所有以前的对话。

public void begin() {
   if (conversation != null
       && !conversation.isTransient()) {
           end();
   }

   if (conversation.isTransient()) {
      conversation.begin();
   }
}

这是正确的方法吗?这会引起问题吗?

标签: scopecdiweldjboss-weldconversation-scope

解决方案


推荐阅读