在 Scala 中的应用程序之间共享业务层

本文关键字:共享 业务 之间 应用程序 Scala | 更新日期: 2023-09-27 18:34:07

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

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

  1. 服务(图书馆(
  2. 网络(mvc 网络应用程序(
  3. 控制台
  4. (控制台应用程序(

然后我会参考WebConsole项目中的Services。这样,WebConsole应用程序使用相同的Services层,并且可以完全分离运行。

现在我想在 Scala 中做同样的工作。我正在寻找做这些工作的最佳模式和实践。

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

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

在 Scala 中的应用程序之间共享业务层

  1. 创建子项目 A、B、C 并将所有业务逻辑移动到 D 中。
  2. 使 A、B、C 依赖于由 D 生成的 jar 工件(仔细查看类路径依赖关系部分(
  3. ????
  4. 利润!

你可以在Scala中使用任何构建系统(如SBT或Maven(做完全相同的事情。由于您使用的是Play,因此自然选择是SBT。只需创建三个项目,就像您描述的那样,使用 SBT 构建定义。

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