自定义应用程序上下文持有

自定义应用程序上下文持有

我想从静态方法中访问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 - Grails自定义应用程序上下文持有人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13450818/

10-12 15:30