将 grails 集成到现有的 Spring 应用程序中?

Posted

技术标签:

【中文标题】将 grails 集成到现有的 Spring 应用程序中?【英文标题】:Integrating grails into an existing spring application? 【发布时间】:2010-10-27 07:48:03 【问题描述】:

如果您不想为 grails 启动一个单独的项目,而是将其潜入现有的 web 应用程序中怎么办?

我必须为一些新实体构建一个管理界面/crud,并认为这将是学习 grails 的完美方式。

【问题讨论】:

【参考方案1】:

我正在尝试使用 Grails 应用程序和 Spring 应用程序制作一个应用程序。

我试图将 Grails 应用程序偷偷带入 Spring 应用程序,但这是“不可能的”。将 Spring 应用程序潜入 Grails 应用程序更容易。 Grails 知道 Spring 是什么,但 Spring 不知道 Grails 是什么。

在this 文章中,您可以找到有关如何在 Grails 中使用休眠映射文件或注释的有用信息,因此您不必重新映射所有内容。您也可以使用所有的 java 类(将它们放入 src/java)。您可以将 ApplicationContext.xml 中定义的 bean 放在 conf/spring/resources.xml 中。您可以将它们留在 ApplicationContext 中,但我遇到了一些问题。 我还没有结束工作(几乎),看起来不错。

【讨论】:

【参考方案2】:

除非现有应用程序具有正确的 dir 结构来准确映射 grails 的喜好,否则很难“潜入” - 毕竟,约定优于配置是 grails 的强大之处。

您可以尝试将管理界面作为原始/现有 spring 应用程序的“单独”应用程序,并将现有数据库映射到 grails 域对象。虽然我不确定如果没有有关现有应用程序的更多信息,您将如何轻松地并排运行它们。不过绝对有可能。

【讨论】:

将实体的管理员放在单独的应用程序中的一个问题是主应用程序中的二级缓存无效。对此的解决方案可能是在管理应用程序中创建一些机制,在主应用程序上调用一些缓存失效服务或共享分布式缓存。我希望有一个更简单的解决方案,以便应用程序的 grails 部分和 spring 部分可以共享缓存和状态。 禁用二级缓存会不会严重影响性能?【参考方案3】:

我同意构建管理界面是学习 Grails 的一个很好的练习,并且也同意前面的答案,即 Grails 很难与现有的 Spring 应用程序集成,如果不是不可能的话。您可能可以完成它,但头痛不值得。

Grails 的 ORM 是在 Hibernate 之上构建的,所以如果您已经在这个 Spring 应用程序中使用 Hibernate,那么您可以利用它来发挥自己的优势。将 Grails 应用程序配置为使用预先存在的 Hibernate 模型并不难,这在 Grails 文档中有很好的解释。

因此,我建议将您的管理控制台构建为独立的 Grails 应用程序,但如果您实际上使用过 Hibernate,请使用您已有的 Hibernate 模型。

【讨论】:

以上是关于将 grails 集成到现有的 Spring 应用程序中?的主要内容,如果未能解决你的问题,请参考以下文章

将 ResKit 集成到现有的 Core Data 应用程序中

将 jQuery 集成到现有的 ASP.NET Web 应用程序中?

将 react-native 集成到现有的 android 应用程序中?

将 Cordova-Sqlite 2 插件集成到现有的 IBM MobileFirst 应用程序中

将 Grails 与现有的 Web 应用程序集成

使用 PyQt 将基于 qml 的图表集成到现有的 ui