Grails:一个数据库和多个应用程序
Posted
技术标签:
【中文标题】Grails:一个数据库和多个应用程序【英文标题】:Grails: One Database and more than one application 【发布时间】:2012-04-08 07:46:55 【问题描述】:我有基于 Grails GORM 的应用程序。一个 Web 服务和一个网站都在不同的端口上运行并共享公共数据库和表。 我所做的是为具有相同字段和域类名称的两个应用程序创建域类。例如具有 userName 和 password 的 Registration 表字段。可以通过网络服务注册,也可以从网站注册。 我当前的应用程序运行良好……但它是一个可行的解决方案吗……?
谢谢, 病毒
【问题讨论】:
为什么要这样做?如果它们具有相同的字段和相同的功能,它们不是副本吗? 【参考方案1】:您可能会遇到竞争/锁定情况,但我已经多次看到这种情况发生。我唯一的建议是不要维护单独的域类。将公共域类放入插件中,并在两个应用程序中安装所述插件。
我见过的另一种模仿您的方法的常见方法是部署一个独立于 admin/cms 的面向客户的应用程序。两者都与同一个数据库通信,它们只是在不同的 tomcat 实例中运行。
【讨论】:
请注意,将单独的应用程序部署到 cloundfoundry 具有挑战性。 ***.com/questions/8684429/… @BradRhoads 将单个应用程序部署到 Cloudfoundry 具有挑战性 @Gregg 谢谢,但是对于您在其中制作插件的解决方案的第一个选项,我应该在我的应用程序还是在我的插件中配置我的 datasource.groovy..?【参考方案2】:您可以创建一个单独的 Gradle 应用程序,该应用程序使用仅包含公共域类的 GORM 依赖。在 src/main/groovy/bla/xyz 中创建这些类(POJO),用
注释它们grails.gorm.annotation.Entity
这将使 GORM 将您的 POJO 识别为域类。
构建此应用程序,发布它并将其用作您对其他 Grails 应用程序的依赖项。
在全力以赴之前,请尝试使用一个 POJO 类。将其发布到您的本地 m2 存储库中,并将其用作 grails 应用程序的依赖项,检查一下。
希望这会有所帮助
【讨论】:
以上是关于Grails:一个数据库和多个应用程序的主要内容,如果未能解决你的问题,请参考以下文章
grails 2.5:使用多个数据源时,“另一个未命名的 CacheManager 已存在于同一 VM 中”