访问';grailsApplication';从插件

访问';grailsApplication';从插件,grails,groovy,Grails,Groovy,如何从插件访问主应用程序的“grailsApplication” 一个例子是: 我在插件中有一个类,它需要从主应用程序获取资源链接,通常通过“grailsApplication”检索。我该怎么做 解决方案 在plugin类中,您可以简单地指定: import grails.util.Holders Holders.getGrailsApplication() 在服务中,您应该能够添加 def grailsApplication 它将被注入到您的服务中 如果您的类是Springbean,那么您

如何从插件访问主应用程序的“grailsApplication”

一个例子是: 我在插件中有一个类,它需要从主应用程序获取资源链接,通常通过“grailsApplication”检索。我该怎么做

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

import grails.util.Holders
Holders.getGrailsApplication()

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

def grailsApplication
它将被注入到您的服务中

如果您的类是Springbean,那么您应该能够将它注入到

def doWithSpring = { ->
    myBean( org.whatever.BeanClass ) {
        grailsApplication = ref( 'grailsApplication' )
    }
}
插件主groovy文件的块

如果两者都不是,您是否尝试过使用Holders类

def grailsApplication = grails.util.Holders.getGrailsApplication()

您是否尝试过ApplicationHolder()?@PawełPiecyk ApplicationHolder不推荐用于grails 2In服务,您应该能够添加
def grailsApplication
,它将被注入到您的服务中。如果您的类是Springbean,那么您应该能够将它注入到插件主groovy文件的
doWithSpring
块中。如果这两个都不是,你试过使用
Holders
类吗?@tim_-yates:谢谢你指出@tim_yates我在src/groovy下定义了一个简单的groovy类,所以我想我应该使用'Holder'类。