Grails doWithDynamicMethods访问服务
我难以使用DynamicMethod访问Dow内的特定服务Grails doWithDynamicMethods访问服务,grails,grails-plugin,Grails,Grails Plugin,我难以使用DynamicMethod访问Dow内的特定服务 def doWithDynamicMethods = { ctx -> def nodeDriverProxy = application.getServiceClass('NodeDriverProxyService') application.domainClasses.each{ cClass -> delegate.log.warn('cClass: ' +
def doWithDynamicMethods = { ctx ->
def nodeDriverProxy = application.getServiceClass('NodeDriverProxyService')
application.domainClasses.each{ cClass ->
delegate.log.warn('cClass: ' + cClass.toString())
cClass.metaClass.cacheInstance = { domainIns->
delegate.log.warn "domain is being cached id: ? with version ?"
nodeDriverProxy.registerUpdate(domainIns.id, domainIns.version)
}
变量nodeDriveProxy为null,或者我在访问“application.serviceClasses”时遇到异常我做错了什么?谢谢您不需要
GrailsServiceClass
,您需要的是服务实例。您有ctx
变量,它是SpringApplicationContext
,因此
def doWithDynamicMethods = { ctx ->
def service = ctx.nodeDriverProxyService
application.domainClasses.each { cClass ->
delegate.log.warn('cClass: ' + cClass.toString())
cClass.metaClass.cacheInstance = { domainIns ->
delegate.log.warn "domain is being cached id: ? with version ?"
service.registerUpdate(domainIns.id, domainIns.version)
}
}
}
谢谢你,伯特。你真的很棒。我从您对其他grails开发人员的其他回答中学到了很多。谢谢你的帮助