2012-08-23 126 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