【问题标题】:Call service from plugin从插件调用服务
【发布时间】:2013-01-15 13:11:59
【问题描述】:

我们可以从插件调用服务吗?比如我有一个插件,它有自己的域,那么现在我们可以从这个域调用主应用程序的服务吗?

【问题讨论】:

  • 如果它需要应用程序中的功能,它有点违背了它作为插件的目的。
  • 实际上我正在尝试编辑现有插件。
  • 为什么不把你想要的功能复制到你自己的应用程序中呢?
  • 这需要对我的代码进行大规模重构。我只是在寻找快速修复。我只需要在我的插件域上使用'grailsApplication',当我尝试在插件的域上注入'grailsApplication'并尝试使用它时,它会引发空指针异常!

标签: grails plugins service groovy


【解决方案1】:

您可以在 Bootstrap.groovy 中自己注入它,因为此时所有内容都已初始化。 也许更好的方法是用类似的东西自动连接它:

def ctx = grailsApplication.mainContext
ctx.beanFactory.autowireBeanProperties(instance, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false)

instance 是插件中的某个对象。

另一种方法是使用 Bean PostProcessors http://www.intelligrape.com/blog/tag/bean-post-processing/

我也非常推荐“Programming Grails”一书,您可以在其中阅读有关此类问题以及如何解决它们的信息。

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多