我正在開發一個簡單的Java EE 5「路由」應用程序。首先轉換來自MQ隊列的不同消息,然後根據某個字段的值存儲在不同的數據源中(需要調用不同ds中的存儲過程)。在Java EE中緩存DataSource查找安全嗎?
例如,valueX - > dataSource1,valueY - > dataSource2。所有數據源都在具有不同jndi條目的應用程序服務器中設置。由於路由信息通常在應用程序運行時不會更改,因此它是否可以緩存數據源查找?例如,我將實現一個單例,其中包含一個散列圖,用於存儲valueX-> DataSource1。當某個條目不在列表中時,我將執行資源查找並將結果存儲在地圖中。我是否獲得了緩存的任何性能,或者這些資源查找是否足夠快?
一般來說,構建這種緩存的最好方法是什麼?我也可以使用緩存來查找其他數據庫查詢。例如,映射值X - >資源名稱是在DB中的簡單表中定義的。它是否更好?是否按需查找值並將結果保存在地圖中,始終執行查找,甚至在啓動時讀取並保存所有條目?我需要同步訪問嗎?我可以創建一個「枚舉」單例實現嗎?
好的。在真實的生活場景的Agreed.The詳細描述確實擊中靶心。;-)那麼,在您看來,什麼是做的最好的方法是什麼?一個帶有HashMap並且不同步的枚舉類? – Ingo 2011-04-24 19:01:56
同步。當作者重建地圖時,你不希望讀者感到困惑。 – 2011-04-24 21:54:17