2013-03-04 44 views
0

爲了減少數據庫命中率,我使用了靜態變量來存儲數據庫中的數據。 在部署WAR時,這些數據存儲在這些變量中,因爲它沒有頻繁變化。 由於範圍只有一個WAR,所以此場景工作正常。現在我有另一個應用程序需要訪問這些變量 但由於應用程序範圍不同,我無法在另一個應用程序中訪問它們。在耳邊戰爭中共享共同數據

此外,我有一個EAR,其中包含WAR以上和JAR包含WAR s的一些常見的業務邏輯。 因此在EAR下有可能通過JAR或使用其他不同的方法分享這些變量嗎?

如果有任何javaEE概念可以在這種情況下幫助,那麼請讓我知道它。

我使用mavenJboss7.1.1.Final這個

回答

1

你應該使用Infinispan的,內置的JBoss 7 https://docs.jboss.org/author/display/ISPN/Getting+Started+Guide+-+JBoss+AS+7的緩存機制。在Java EE中通常會在靜態字段中緩存數據。

但是,如果您仍然希望將數據緩存在靜態字段中,則需要確保具有緩存的類將在所有WAR中共享。這意味着您必須創建skinny WAR s。

+0

ok.Thanks Philippe Marschall and Surge我會檢查Infinispan。 – vg123 2013-03-06 06:04:48

1

看起來您需要企業緩存解決方案。市場上有很多選擇。它們包括但不限於

開源框架

  1. Memcached的
  2. 的EHCache
  3. 的Infinispan(由菲利普提到)

商業產品

  1. Oracle Coherence的
  2. GigaSpaces的XAP
  3. 的GemFire

關於第二個問題,只要你的JAR部署在EAR/lib文件夾,你應該罰款。