0

我想与另一个 grails 应用程序共享我的 grails 应用程序(Grails 域类和服务)的数据访问部分。一个是面向标准客户端的 Web 应用程序,另一个(尚未编写)将用于定期后台任务,例如使用 Quartz 插件或类似插件的提醒电子邮件等,其中 UI 仅用于内部用户的统计/控制。

我不希望这一切都捆绑在一个 Grails 应用程序中,因为我希望能够扩展它们并在不同的机器上运行它们。这样做的正确方法是什么?过去,我通过将共享数据访问类捆绑到一个 .jar 中并将它们包含在多个应用程序中需要的地方,在更多的遗留 Java Web 应用程序中实现了这一点,但我不确定这是否是 Grails 的正确方法。

我已经考虑过一个成熟的面向服务的架构,其中第三个 grails 应用程序负责所有数据访问,并且所描述的两个应用程序通过对此服务应用程序的 REST 调用进行所有数据访问,但这在短期内超出了范围,因为面向客户端的 webapp 已经编写好了。

4

1 回答 1

4

通常这是通过插件完成的。创建您想要在应用程序之间共享的域类、服务、控制器甚至默认 gsp,并将它们创建为插件。这样,您就可以将它们安装在任何需要该行为的 Grails 应用程序中。

我已经通过一些在我编写的应用程序(如应收账款、应付账款等)中相当常见的通用会计类型行为来做到这一点。

一件很棒的事情是,您可以使用测试数据源单独编写插件和测试,然后当您将其安装到 Grails 应用程序中时,它将使用应用程序数据源。它将具有默认的 gsp 和控制器,为您提供可以在实际应用程序中覆盖的基本行为集。

于 2012-04-28T23:24:35.400 回答