我想使用 依赖注入框架 。
在我评估期间,我得出的结论是 Google Guice 似乎最符合我的要求。
然而,我想到了一些问题:
想象一个用户可以在http会话中拥有独立窗口的Web应用程序。 Session
范围过于笼统而Request
范围对我来说太窄了。
是否有可以帮助我的范围? (我称之为“window
”或“controller instance
”范围
是否有陷阱撰写自定义范围?
我们的Web应用程序和几个独立的控制台应用程序使用相同的类。我面临的问题是,范围取决于对应用程序类型仅在运行时已知。
例如。在独立应用程序中,范围将是“ No-Scope ”或“每线程范围”,而在Web应用程序中,它将绑定到{{1} } / “Session
”。
如何解决这个问题?
答案 0 :(得分:2)
答案 1 :(得分:2)
要回答3.为您的版本使用不同的模块,并在那里设置范围。
bind(Grill.class).to(Applebees.class).in(Scopes.SINGLETON);
答案 2 :(得分:1)
您可以将范围与应用程序上下文处理程序一起使用,这有助于确定作用域逻辑的工作方式。然后使用相同的自定义范围,您可以控制在运行时如何创建对象。