Dal mio controller vorrei selezionare dinamicamente un servizio basato su un parametro.Come selezionare dinamicamente un servizio in Grails
Attualmente ho un servizio di base e alcuni altri servizi che estendono questo servizio di base. In base al parametro che io chiamo una classe che fa crea un nome di fagioli basato sul param e alla fine chiama il seguente:
import org.codehaus.groovy.grails.web.context.ServletContextHolder as SCH
import org.codehaus.groovy.grails.web.servlet.GrailsApplicationAttributes as GA
class Resolver {
def ctx
def getBean(String beanName) {
if(!ctx) {
ctx = SCH.servletContext.getAttribute(GA.APPLICATION_CONTEXT)
}
return ctx."${beanName}"
}
}
Questo restituisce il servizio che voglio. Tuttavia mi sento piuttosto sporco a farlo in questo modo. Qualcuno ha un modo migliore per gestire l'ottenimento di un servizio (o qualsiasi altro bean) basato su alcuni parametri?
Grazie.