【问题标题】:Sharing the business layer between applications in Scala在 Scala 中的应用程序之间共享业务层
【发布时间】:2013-10-13 19:45:17
【问题描述】:

我有一个业务逻辑(域服务/模型),我想在两种类型的项目之间共享它。一个是 mvc Web 应用程序,另一个是终端/控制台应用程序。

在 .NET 世界中,我创建了一个至少包含三个项目的解决方案(每个项目都将编译为一个 DLL 文件)。

  1. 服务(库)
  2. Web(mvc Web 应用程序)
  3. 控制台(控制台应用程序)

然后我会从WebConsole 项目中引用Services。这样WebConsole 应用程序使用相同的Services 层,可以完全分开运行。

现在我想在 Scala 中做同样的工作。我正在寻找完成此类工作的最佳模式和实践。

此外,将 模型Web 应用程序移动到 Services 并在 Console 应用程序中使用这些模型是个好主意吗?实际上,我将模型类用作域模型和 mvc 模型。

注意:我不知道这是否重要,但我使用 Play 作为 Web 应用程序框架。

【问题讨论】:

    标签: c# scala architecture


    【解决方案1】:
    1. 创建子项目 A、B、C 并将所有业务逻辑移至 D。
    2. Make A, B, C depend on jar artifact produced as a result of D。 (仔细查看classpath dependencies 部分)
    3. ????
    4. 利润!

    【讨论】:

      【解决方案2】:

      您可以在 Scala 中使用任何构建系统(如 SBT 或 Maven)执行完全相同的操作。由于您使用的是 Play,因此自然选择 SBT。就像你描述的那样,做三个项目,using SBT build definitions

      我不具体了解 Play,但通常每个这样的项目都会生成 JAR(或其他 *AR)文件,例如,可以使用 java 命令运行或部署在某处。因此,您的“服务”和“控制台”可能是纯 JAR 文件。

      【讨论】:

        猜你喜欢
        • 2013-03-18
        • 2018-10-19
        • 1970-01-01
        • 2020-06-08
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多