grails - 如何在多个 Grails 应用程序之间共享数据访问层(服务和域类)

标签 grails soa data-access-layer

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

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

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

最佳答案

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

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

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

关于grails - 如何在多个 Grails 应用程序之间共享数据访问层(服务和域类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10368113/

相关文章:

asp.net-mvc - MVC 层和 DAL 和数据层

grails - 谁能为大型应用程序推荐Java Web框架?

grails - 用于 Grails 插件的 Riak

node.js - 寻找grails前端插件

email - 无法从 SOA UMS 驱动程序读取电子邮件

c# - 通过数据访问层从数据库中获取数据的聪明方法?

python - 使用 web2py 修改 SQL 表模式

grails - 域有一些共同的领域,扩展域或嵌入?

architecture - SCA(服务组件架构)和ESB(企业服务总线)的区别?

NServiceBus 和决定服务边界