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

8
如果您不想为Grails启动单独的项目,而是想将其悄悄地引入现有的Web应用程序中怎么办?
我需要为一些新实体构建管理界面/CRUD,并认为这是学习Grails的绝佳方式。
3个回答

3

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

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

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


0

除非现有的应用程序具有与Grails所需的完全相同的目录结构,否则“悄悄地加入”将是困难的-毕竟,约定优于配置正是Grails的强大之处。

您可以尝试将管理界面作为“独立”的应用程序添加到原始/现有的Spring应用程序中,并将现有数据库映射到Grails域对象上。虽然我不确定如何在没有更多现有应用程序信息的情况下轻松并排运行它们。但肯定是可能的。


将实体的管理员放在单独的应用程序中会导致主应用程序中的无效L2缓存的问题。解决方法可以是在管理应用程序中创建一些机制,调用主应用程序上的某些缓存失效服务,或者共享分布式缓存。我希望有一个更简单的解决方案,使得应用程序的grails部分和spring部分可以共享缓存和状态。 - D. Wroblewski
禁用L2缓存会对性能产生重大影响吗? - Andrew Swan

0

我同意建立自己的管理界面是学习Grails的好练习,也同意之前的回答说如果要将Grails集成到现有的Spring应用程序中可能会很困难甚至不可能。虽然你可能能够做到,但头痛的代价不值得。

Grails基于Hibernate构建其ORM,因此如果您已经在Spring应用程序中使用Hibernate,则可以利用这一点。配置Grails应用程序以使用预先存在的Hibernate模型并不太困难,而且在Grails文档中有很好的解释。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接