【问题标题】:Guice: Scope related questionsGuice:范围相关问题
【发布时间】:2011-10-07 15:51:02
【问题描述】:

我想使用依赖注入框架

在评估过程中,我得出的结论是 Google Guice 似乎最适合我的需求。

然而,我想到了一些问题:

  1. 想象一个 Web 应用程序,其中用户可以在一个 http 会话中拥有独立窗口Session 范围太笼统,而 Request 范围对我来说太窄。
    有没有可以帮助我的范围? (我称之为“window”或“controller instance”范围)

  2. 编写自定义范围是否有任何陷阱

  3. 我们的 Web 应用程序和几个独立的控制台应用程序使用相同的类。我面临的问题是,类的范围取决于仅在运行时知道的应用程序类型。
    例如。在独立应用程序中,范围将是“No-Scope”或“per-Thread Scope”,而在 Web 应用程序中,它将绑定到 Session/ “window”。
    如何解决这个问题?

【问题讨论】:

    标签: java dependency-injection scope guice


    【解决方案1】:

    您可以将作用域与应用程序上下文处理程序一起使用,这有助于确定作用域逻辑的工作方式。然后使用相同的自定义范围,您可以控制如何在运行时创建对象。

    【讨论】:

      【解决方案2】:

      回答 3. 为您的版本使用不同的模块,并在那里设置范围。

      bind(Grill.class).to(Applebees.class).in(Scopes.SINGLETON);
      

      【讨论】:

        【解决方案3】:
        1. 您必须创建一个custom scope
        2. 我不知道。我们一直在使用自定义范围,效果很好。
        3. 在 Web 应用程序和独立应用程序中使用自定义范围的不同实现

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-05
          • 1970-01-01
          • 2011-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多