【问题标题】:Can a Grails plugin use the datasource from the app that uses it?Grails 插件可以使用应用程序中的数据源吗?
【发布时间】:2016-07-22 22:54:13
【问题描述】:

我想使用插件在多个应用程序之间共享一堆域类和控制器。每个应用程序都将使用自己的数据库。我希望插件中的域类将它们的数据存储在与应用程序相同的数据库中。

请问我该怎么做?

【问题讨论】:

    标签: grails-plugin


    【解决方案1】:

    插件基本上被合并到包含它的应用程序中,因此它使用应用程序中的设置。这包括数据源。实际上没有办法在域类中指定它使用什么数据库。从技术上讲,这在 2.0 中并非如此,因为它可以选择使用多个数据源中的哪一个,但选择来自应用程序定义的数据源。

    【讨论】:

      【解决方案2】:

      您的插件可以更改 DataSource.groovy 文件,因此您可以尝试从配置中读取应用程序名称并相应地设置数据源。也许它看起来像这样:

      production {
          dataSource {
              jndiName = "java:comp/env/jdbc/${grailsApplication.metadata.'app.name'}"
          }
      }
      

      【讨论】:

        【解决方案3】:

        在 Grails 3 中,如果您想在多个应用程序之间共享域类,您可以将域类放入插件中。

        然后您可以将该插件作为依赖项添加到您的多个应用程序中。

        然后您的应用程序将有权访问这些域类。

        数据源设置在使用插件的顶级应用程序中。

        因此,如果您在顶级应用程序中只有 1 个数据源设置,那么当您执行 grails 模式导出命令。

        【讨论】:

          猜你喜欢
          • 2013-12-28
          • 2015-06-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多