【问题标题】:How do I outject an object for CDI / Weld如何为 CDI / Weld 弹出对象
【发布时间】:2015-02-16 06:14:56
【问题描述】:

我认为这是一个非常基本的问题,但我还没有找到解决方案。 我将如何“输出”一个对象,我以后希望将其作为要注入的对象。

假设我们有 ServiceA,它创建了一个对象

@Stateless
public class ServiceA {

  public void createObject() {

      MyObject myObject = callSomeService();
      ---> now put myObject into the session
  }
}

另一个服务 B 应该可以使用这个对象:

@Stateless
public class ServiceB {

  //should be available here
  @Inject
  private MyObject myObject

}

我该怎么做? 感谢您的帮助!

【问题讨论】:

    标签: java jsf session cdi


    【解决方案1】:

    您可能需要使用 Producer 方法。

    生产者方法可以让您在以下位置选择 bean 实现 运行时,而不是在开发时或部署时。 ~ Java EE 6 Tutorial

    您可以在线找到有关如何使用 Producer 方法的示例。 This tutorial 似乎很有用。

    类似的问题:

    【讨论】:

      【解决方案2】:

      具体来说,你需要的 producer 方法如下所示:

      @Produces
      @SessionScoped
      public MyObject createSessionObject() {
          return callSomeService();
      }
      

      这将为会话调用一次,第一次访问。

      【讨论】:

        猜你喜欢
        • 2014-01-27
        • 2016-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多