Grails - 通过在插件类上调用方法重新启动Rabbitmq插件使用者

时间:2015-02-10 11:06:32

标签: grails rabbitmq

我使用的是Grails Rabbitmq Native插件。当我启动应用程序时,我不希望自动启动RMQ使用者,因此在我的Config.groovy中我定义了:

rabbitmq.enabled == false

doWithSpring()(https://github.com/budjb/grails-rabbitmq-native/blob/master/RabbitmqNativeGrailsPlugin.groovy#L114)中的代码表示如果此标志为false,则不执行某些连接。

在某些时候,我希望能够启动RMQ系统。我想调用插件类中定义的方法,例如restartRabbitContext()(https://github.com/budjb/grails-rabbitmq-native/blob/master/RabbitmqNativeGrailsPlugin.groovy#L231)来启动RMQ使用者。我想我需要自己进行一些布线。

有办法做到这一点吗?能够访问插件类的方法需要什么导入?

1 个答案:

答案 0 :(得分:1)

您最好的办法是使用GrailsPluginManager使用getGrailsPlugin按名称访问您的插件。从那里你应该能够以GrailsPlugin的形式访问插件并访问插件本身定义的公共方法。

可以通过GrailsPluginManager获取grailsApplication,例如:grailsApplication.pluginManager。在非常罕见的情况下,您无法使用DI,您可以随时返回Holders以转到GrailsPluginManager(尽管这种情况非常罕见)。