访问游戏中的全局对象!2.0与Java

访问游戏中的全局对象!2.0与Java,java,playframework-2.0,Java,Playframework 2.0,我已经扩展了GlobalSettings类,如教程所示 然后,我如何访问这个类的实例,比如说从一个视图方法? 我假设一个实例是在应用程序启动时创建的,它可能是某个对象的成员 例如,我希望在这里找到它: Play.application().getGlobalSettings() 或者类似的东西,但我在剧中的任何地方都找不到。*层次结构 有什么想法吗? 谢谢。直接引用全局对象即可。 例如,不要写: public class Global extends GlobalSettings {} 写

我已经扩展了GlobalSettings类,如教程所示

然后,我如何访问这个类的实例,比如说从一个视图方法? 我假设一个实例是在应用程序启动时创建的,它可能是某个对象的成员

例如,我希望在这里找到它:

Play.application().getGlobalSettings()
或者类似的东西,但我在剧中的任何地方都找不到。*层次结构

有什么想法吗?
谢谢。

直接引用全局对象即可。 例如,不要写:

public class Global extends GlobalSettings {}

object Global extends GlobalSettings {}

并且,您可以在代码中的任何位置引用全局对象,只需编写:

Global.someMethod()

我是2.0新手,但是,我认为使用插件注入更好。看看这个:

使用这种方法,您只需将以下行添加到控制器(以及一些其他配置,如上面链接中所述):

其余的都是使用注入框架自动完成的。无需担心全球等问题

也就是说,和你一样,在发现插件注入框架之前,我花了很多时间试图弄清楚如何使用GlobalSettings对象来实现这一点


我的感觉是,给定全局是如何实现的(作为默认/未命名包中的类),不可能在应用程序代码中的任何地方引用它。我不确定这是故意的还是偶然的(似乎现在剧组的人都在考虑Scala…)。幸运的是,插件方法似乎是处理这些共享全局变量的更好方法。

是scala吗?我不知道这张表格。。这是否意味着该实例无法从任何播放参考中获得?这是Scala代码。我不知道你会如何在Java中做到这一点。谢谢,但我正在寻找一个Java解决方案,对我来说有很多新东西,所以我现在宁愿使用尽可能少的scala。现在我只是使用一个单例模式,但我真的希望找到一个更好的解决方案。谢谢,我甚至没有意识到有这样一个插件的游戏。。。但既然使用了这个插件,我得到了一个单例模式,为什么不自己做呢?与我自己的单例实现相比,使用这个插件有什么优势?
Global.someMethod()
@Inject static MyStaticObj obj;