Guice:范围相关问题

时间:2011-07-18 12:39:27

标签: java dependency-injection scope guice

我想使用 依赖注入框架

在我评估期间,我得出的结论是 Google Guice 似乎最符合我的要求。

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

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

  2. 是否有陷阱撰写自定义范围

  3. 我们的Web应用程序和几个独立的控制台应用程序使用相同的类。我面临的问题是,范围取决于对应用程序类型仅在运行时已知。

    例如。在独立应用程序中,范围将是“ No-Scope ”或“每线程范围”,而在Web应用程序中,它将绑定到{{1} } / “Session”。
    如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

  1. 您必须创建custom scope
  2. 不是我知道的。我们一直在使用自定义示波器,效果非常好。
  3. 在Web应用程序中使用自定义作用域的不同实现,而在独立应用程序中使用其他实现

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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