一个应用程序被识别为数据的所有者,必须访问域数据.像亚马逊和亚马逊的web服务.
我想这是微不足道的,拥有的应用程序将使用正常的域类,并通过Web服务公开数据 – 在grails中没有问题.
但是在其他应用程序中实现域的最佳做法是什么?
>使用服务访问远程域,而不是实现本地域类?
>实现本地域类,覆盖get() – 方法以获取远程数据并使用本地数据库作为缓存?
>还有什么其他的解决方案出现在你的脑海里?
解决方法
>作为一个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应该能够使这两个应用程序具有一致的数据视图,并避免每个应用程序拥有自己的不一致缓存.