2012-08-23 72 views
1

我在想如何使一个简单的应用程序知道Grails应用程序中的更改。因此,如果Grails更新域对象,那么Swing会意识到它并更新它的显示。这两个应用程序都支持相同的数据库Swing应用程序在Grails应用程序中侦听更改

我在想Grails JMS(或Apache Camel)插件可以暴露更改,但Swing应用程序如何发现它们?我期望在Grails方面的实现将是直接的,但我完全失去了Swing方面。

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

+0

“更新域对象”是指数据库中的记录? –

+0

...没错 – vector

回答

0

那么,如果是相同的数据库,你可以创建一个表,当有东西发生变化时将会有记录,还有一些方法来更新这个表(在你的grails应用程序中触发或更新)。您的Swing应用程序将只检查(您可以使用timersQuartz作业)表并刷新视图时发现的东西。

喜欢的东西:

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应用程序查询表,寻找没有timestamp_updated_swing的新记录;
  • Swing应用刷新的视图;
+0

......嗯,这是一个想法。我正在考虑更多的应用程序的倾听和被网络服务器攻陷。 – vector