Nit*_*mer 8 java playframework-2.0
我已经扩展了GlobalSettings类,如教程应用程序全局设置中所示.
然后我如何从视图方法中获取对该类实例的访问权限?我假设在应用程序启动时创建了一个实例,并且它可能是某个对象的成员.
我希望例如在这里找到它:
Play.application().getGlobalSettings()
Run Code Online (Sandbox Code Playgroud)
或类似的东西,但我无法在Play.*层次结构中的任何地方找到它.
有任何想法吗?谢谢.
我是Play 2.0的新用户,但是,我认为使用插件注入会更好.看一下这个:
https://github.com/typesafehub/play-plugins/tree/master/inject
使用这种方法,您只需将以下行添加到控制器(以及其他一些配置,如上面链接中所述):
@Inject static MyStaticObj obj;
Run Code Online (Sandbox Code Playgroud)
其余所有内容都是使用注入框架自动完成的.无需担心全球等
也就是说,在发现插件注入框架之前,我花了很多时间试图弄清楚如何使用GlobalSettings对象.
我的感觉是,鉴于Global的实现方式(作为默认/未命名包中的类),不可能在应用程序代码中的任何位置引用它.我不确定这是设计还是偶然(似乎Play人们现在都在考虑Scala ......).幸运的是,插件方法似乎是处理这些共享全局变量的更好方法.
Sla*_*vus -3
只需直接引用 Global 对象即可。例如不要写:
public class Global extends GlobalSettings {}
Run Code Online (Sandbox Code Playgroud)
写
object Global extends GlobalSettings {}
Run Code Online (Sandbox Code Playgroud)
或者
object Global extends Global {}
class Global extends GlobalSettings {}
Run Code Online (Sandbox Code Playgroud)
并且您可以在代码中的任何位置引用 Global 对象,只需编写:
Global.someMethod()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4614 次 |
| 最近记录: |