0
サービスを動的に呼び出して、サービス名が文字列値になるようにするには、以下のコードを使用してgrailsプロジェクトのすべてのサービス名を一覧表示できます。Grails:文字列からサービスとサービス名を呼び出す方法
import org.codehaus.groovy.grails.plugins.metadata.GrailsPlugin
for (type in ['service']) {
for (artifactClass in ctx.grailsApplication."${type}Classes") {
def clazz = artifactClass.clazz
def annotation = clazz.getAnnotation(GrailsPlugin)
if (annotation) {
println "$type $clazz.name from plugin '${annotation.name()}'"
}
else {
println "$type $clazz.name from application"
}
}
}
ここでは、そこにこのidea.Pleaseが私を助けて使用してサービスを呼び出すための任意のオプションをservice.IsのartifactClass
を取得します。
からのサービスのためのBeanを取得することができ、あなたはgrailsApplication.mainContext''経由でコンテキストを取得することができます。私はまた、文字列補間を使うのではなく、メソッド呼び出し 'getBean'を使う方が好きですが、それは機能的ではなく個人的なものです。' grailsApplication.mainContext.getBean( 'yourServiceName')。serviceMethod() ' – tylerwal