我正在使用 Grails Rabbitmq Native 插件。当我启动应用程序时,我不希望 RMQ 消费者自动启动,所以在我的 Config.groovy 中我定义了:
rabbitmq.enabled == false
doWithSpring() ( https://github.com/budjb/grails-rabbitmq-native/blob/master/RabbitmqNativeGrailsPlugin.groovy#L114 ) 中的代码意味着如果此标志为假,则不执行某些接线。
在某个时候,我希望能够启动 RMQ 系统。我想调用插件类中定义的方法,例如 restartRabbitContext() ( https://github.com/budjb/grails-rabbitmq-native/blob/master/RabbitmqNativeGrailsPlugin.groovy#L231 ) 来启动 RMQ 消费者。我想我需要自己进行一些接线。
有没有办法做到这一点?能够访问插件类的方法所需的导入是什么?
最佳答案
您最好的选择是使用 GrailsPluginManager使用 getGrailsPlugin 按名称访问您的插件.从那里您应该能够以 GrailsPlugin 的身份访问插件并访问插件本身中定义的公共(public)方法。GrailsPluginManager
可以通过grailsApplication
获得如:grailsApplication.pluginManager
.在极少数情况下您不能使用 DI,您可以随时退回到 Holders前往GrailsPluginManager
(尽管这是非常罕见的情况)。
关于Grails - 通过调用插件类上的方法重新启动 Rabbitmq 插件消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28430110/