构建Play框架模块,用于在多个服务之间共享数据层

idb*_*ley 5 model-view-controller model module playframework

牢记SOA的概念,我的意图是提供几种不同的服务,这些服务利用相同的数据模型.想象一下扑克应用程序 - 我们可能有以下服务:

  • 游戏前端
  • 行政前端
  • 球员排名/排行榜服务
  • 玩家资助服务
  • 银行整合服务
  • ...

所有这些服务都可以利用相同的模型(可能在必要时提供额外的模型信息).

在游戏中!我可以将这个数据模型外化,但保持使用Play获得的好处.例如,运行时重新编译.

模块看起来似乎可以完成这项工作,但几乎没有关于它们的文档,给出的示例提供了相反的范例 - 服务是模块,核心播放应用程序提供了功能.

任何指导将不胜感激.

bas*_*sav 3

使用 Play 很难获得真正的 SOA 风格。因为 Play 不仅仅是一个框架 - 它是一个 Web 平台,提供从 HTTPRequest 到数据库持久性的服务,而不是孤立的。

就你而言,如果你必须真正外部化数据层,那么我建议你尝试Spring module。Spring 应该负责持久性、业务逻辑并将其封装在服务接口中。

在您的 Play 应用程序中,控制器依赖于这些公开的服务接口。Spring 服务应该独立于任何 Play 功能(无论是验证还是 JPA 持久性等,即不导入)

目标是 - 如果需要的话,您应该能够使用任何 MVC 框架(Spring MVC、Struts 等)并利用相同的服务。