1

我想知道如何让一个简单的 Swing 应用程序知道 Grails 应用程序的变化。因此,如果 Grails 更新了一个域对象,Swing 就会意识到它并更新它的显示。两个应用程序都由同一个数据库支持。

我在想 Grails JMS(或 Apache Camel)插件可以公开发生的变化,但是 Swing 应用程序如何发现它们呢?我希望 Grails 方面的实现是直截了当的,但我对 Swing 方面完全迷失了。

如果这听起来很模糊,那是因为这种类型的整合对我来说是一个完全未知的领域。如此之多,以至于我还没有代码可以发布。

4

1 回答 1

0

好吧,如果是同一个数据库,您可以创建一个表,该表将在某些更改时包含记录以及一些更新该表的方法(在您的 grails 应用程序中触发或更新)。您的 Swing 应用程序只会检查(您可以使用计时器Quartz作业)表并在找到某些内容时刷新视图。

就像是:

grails_changes (i'm not concerned about better names here :) )
--------------------------
id
domain
id_record_domain
timestamp_changed
timestamp_updated_swing

并且使您的桌面应用程序更加灵活,例如domainid_recrod_domain您可以拥有一个仅针对一个特定域刷新的特定视图。

timestamp_update_swing是要知道视图是否已经更新以及何时更新。

所以流程将是:

  • 在 grails 应用中记录更改(创建、修改、删除);
  • 在 grails_changes 中注册更改;
  • Swing app查询表,寻找没有timestamp_updated_swing的新记录;
  • Swing 应用程序刷新视图;
于 2012-08-23T22:39:30.800 回答