我想从静态方法中访问 Grails ConfigObject,并尝试按照这篇文章进行操作:
http://burtbeckwith.com/blog/?p=1017
该解决方案建议使用单例类创建自定义应用程序上下文持有者,并将其注册到 bean 列表 (resources.groovy) 中。
单例类应该有一个 ApplicationContext 类型的私有(private)属性,它应该由 setApplicationContext 方法初始化,但看起来这永远不会发生。
如何在我的单例类实例中设置 ApplicationContext?
最佳答案
这取决于您何时尝试访问它 - 如果您的静态方法在 grailsApplication 完全设置之前被调用,那么它可能尚未被注入(inject)。尝试使用 grails.util.Holders
(ApplicationHolder 等人的非弃用替代品)或尝试 "domain class trick"
new MyDomainObject().getDomainClass().grailsApplication.config
关于Grails 自定义应用程序上下文持有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13450818/