从我的控制器我想根据参数动态选择服务。如何在Grails中动态选择服务
目前我有一个基本服务和一些其他服务,扩大这种基本服务。基于参数我打电话,做一个类创建基于帕拉姆一个bean的名字,并最终调用下面:
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}"
}
}
这将返回我想要的服务。不过,我觉得这样做很脏。有没有人有更好的方式来处理基于某些参数获取服务(或任何其他bean)?
谢谢。