grails – 如何实现“远程”域?

想象一下共享一个域类的两个Grails应用程序.也许是一个Book域类.

一个应用程序被识别为数据的所有者,必须访问域数据.像亚马逊和亚马逊的web服务.

我想这是微不足道的,拥有的应用程序将使用正常的域类,并通过Web服务公开数据 – 在grails中没有问题.

但是在其他应用程序中实现域的最佳做法是什么?

>使用服务访问远程域,而不是实现本地域类?
>实现本地域类,覆盖get() – 方法以获取远程数据并使用本地数据库作为缓存?
>还有什么其他的解决方案出现在你的脑海里?

解决方法

Ryan Geyer有一个非常有趣的文章 Modularizing your Grails application domain classes列出了这个问题的3个解决方案:

>作为一个RESTful JSON服务 – 在Grails中很容易得到这个设置,但是丢失了GORM自动功能.
>将域类别分成库JAR文件,并在我的其他应用程序中引用该库.这不像首先听起来那么容易
>创建一个Grails插件.将域对象放在插件中.您的每个应用程序都可以导入此插件.然后,您可以根据需要创建不同功能的不同控制器.此示例代码可从以下网址获取:

git clone git://ec2.nslms.com/grails/blog_example_modular

Ted Naleid在post晚期提供了一个很好的提示,并建议…

“create a grails-app/conf/BuildConfig.groovy file and put the plugin name and path to the source in it. … If you do this,your applications will see the live changes to your domain/controller/service/etc classes as if they were actually in current app and there isn’t any need to repackage and reinstall the plugin when you make changes.”

Using memcache应该能够使这两个应用程序具有一致的数据视图,并避免每个应用程序拥有自己的不一致缓存.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些