grails插件动态bean创建

时间:2011-07-07 01:49:24

标签: spring grails groovy

我正在尝试在我的插件中注册一个bean,但该bean的类(实现)是可配置的。

在我的TestGrailsPlugin.groovy文件中:

def doWithSpring = {
    userListener("${ConfigurationHolder.config.userListenerClass}")
}

但这不起作用!我该怎么办,我想应该是非常容易的任务。但没有找到任何地方!

欢呼声

1 个答案:

答案 0 :(得分:2)

您可以使用GrailsApplication的类加载器动态加载类:

def doWithSpring = {
   def clazz = application.classLoader.loadClass(application.config.userListenerClass)
   userListener(clazz)
}

另请注意,我使用application.config而不是使用持有者类 - 持有者在2.0中已弃用,将在以后的版本中删除。