GrailsApplicationWare的使用

GrailsApplicationWare的使用,grails,Grails,根据GrailsApplicationWare接口是一个 方便的接口,可由插件注册的类实现 因此,实现此接口的Springbean可以使用它来获取GrailsApplication的实例。但是,其他对象能否出于同样的目的实现此接口?我不清楚这是什么意思 由插件注册的类 它的工作原理与标准Spring接口相同,例如ApplicationContextAware-任何bean(无论是隐式注册为人工制品还是显式注册在resources.xml、resources.groovy或插件的doWithSpr

根据GrailsApplicationWare接口是一个

方便的接口,可由插件注册的类实现

因此,实现此接口的Springbean可以使用它来获取
GrailsApplication
的实例。但是,其他对象能否出于同样的目的实现此接口?我不清楚这是什么意思

由插件注册的类


它的工作原理与标准Spring接口相同,例如
ApplicationContextAware
-任何bean(无论是隐式注册为人工制品还是显式注册在
resources.xml
resources.groovy
或插件的
doWithSpring
)实现该接口的框架将自动调用其
setGrailsApplication(GrailsApplication ga)
方法,而无需将其显式命名为属性或启用自动关联

对于设置为执行自动连接的bean(例如Grails服务),您不需要实现
GrailsApplicationWare
,只需要提供
setGrailsApplication
方法(Groovy属性定义
def grailsApplication
将为您创建该方法)它将自动连接,因为
GrailsApplication
注册为名为
GrailsApplication
的bean。当然,您也可以显式地注入bean

doWithSpring = {
  myPluginBean(MyPluginBean) {
    grailsApplication = ref('grailsApplication')
  }
}

它的工作原理与标准Spring接口相同,例如
ApplicationContextAware
-任何bean(无论是隐式注册为人工制品还是显式注册在
resources.xml
resources.groovy
或插件的
doWithSpring
)实现该接口的框架将自动调用其
setGrailsApplication(GrailsApplication ga)
方法,而无需将其显式命名为属性或启用自动关联

对于设置为执行自动连接的bean(例如Grails服务),您不需要实现
GrailsApplicationWare
,只需要提供
setGrailsApplication
方法(Groovy属性定义
def grailsApplication
将为您创建该方法)它将自动连接,因为
GrailsApplication
注册为名为
GrailsApplication
的bean。当然,您也可以显式地注入bean

doWithSpring = {
  myPluginBean(MyPluginBean) {
    grailsApplication = ref('grailsApplication')
  }
}

那么“通过插件注册的类”意味着“Springbeans或Grails人工制品”?所有Grails人工制品也都是SpringBean(虽然不一定是单例bean)是真的吗?@Don从技术上说,我不认为有任何规则说任意人工制品必须对应于SpringBean,但实际上所有标准人工制品都对应于SpringBean(域、控制器、服务、标记库、引导、石英作业等等)。所以“通过插件注册的类”意味着“SpringBean或Grails人工制品”?所有Grails人工制品也都是SpringBean(虽然不一定是单例bean)是真的吗?@从技术上讲,我不认为有任何规则说任意人工制品必须对应于SpringBean,但实际上所有标准人工制品都是这样的(域、控制器、服务、标记库、引导、石英作业等)。