在 App Engine 模块之间共享实体

AAP*_*AAP 5 google-app-engine jpa android-studio

我正在从 Eclipse 迁移到 Android Studio,并且有一个 Android 应用程序连接到 AppEngine。我将服务器端分为两个模块(用于端点和面向用户的请求的默认模块)和用于后端内容的“管理”模块。现在这两个模块都需要使用实体。(后端模块通常负责将这些实体保存到数据库,而前端默认模块是使用这些实体将数据返回到Android的模块)。

在 Android Studio 中这两个模块之间共享这些实体类的最佳方法是什么?(还要确保这些课程得到增强等)。我不希望在默认模块和管理中都有重复的类。也许两者之间共享一个通用的“java”模块(但不确定类增强是否有效)。或者管理模块不应该使用实体而应该使用其他持久化方式?

欣赏你的想法。

Dan*_*scu 4

虽然可能有不共享代码的原因,但我个人更喜欢 DRY。

我通过Python后端以 DRY 精神解决了这个问题,将模型定义文件放在应用程序目录中app/models.yaml并将其符号链接到每个模块子目录中app/module_blah/models.yaml,从而确保所有模块都看到相同的模型定义。在部署时,符号链接会自动替换为符号链接文件的实际内容。从appcfg.py 更新

该命令遵循符号链接并递归地将所有文件上传到服务器。跳过临时文件或源代码控制文件,例如 foo~、.svn/*。

同时部署所有模块可能需要小心。

我还使用相同的技术,通过根据app/lib/libX需要将子目录符号链接到所需的子目录,来跨模块共享整个库和通用代码app/module_blah/lib/libX

不过,不确定这种技术是否可以在 Java 中使用。