我使用的是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使用者。我想我需要自己进行一些布线。
有办法做到这一点吗?能够访问插件类的方法需要什么导入?
答案 0 :(得分:1)
您最好的办法是使用GrailsPluginManager使用getGrailsPlugin按名称访问您的插件。从那里你应该能够以GrailsPlugin的形式访问插件并访问插件本身定义的公共方法。
可以通过GrailsPluginManager
获取grailsApplication
,例如:grailsApplication.pluginManager
。在非常罕见的情况下,您无法使用DI,您可以随时返回Holders以转到GrailsPluginManager
(尽管这种情况非常罕见)。