从插件访问'grailsApplication'

Tom*_* R. 4 grails groovy

如何从插件访问主应用程序的"grailsApplication"?

示例情况:我在插件中有一个类,需要从主应用程序获取资源链接,通常通过"grailsApplication"检索.我怎么做?

解决方案 在插件类中,您可以简单地指定:

import grails.util.Holders
Holders.getGrailsApplication()
Run Code Online (Sandbox Code Playgroud)

tim*_*tes 6

在服务中,您应该能够添加

def grailsApplication
Run Code Online (Sandbox Code Playgroud)

它将被注入您的服务.

如果你的班级是一个春天的豆子,那么你应该能够将它注入其中

def doWithSpring = { ->
    myBean( org.whatever.BeanClass ) {
        grailsApplication = ref( 'grailsApplication' )
    }
}
Run Code Online (Sandbox Code Playgroud)

插件主groovy文件的块.

如果它们都不是,你试过使用Holders类吗?

def grailsApplication = grails.util.Holders.getGrailsApplication()
Run Code Online (Sandbox Code Playgroud)