使用CDI bean(使用Myfaces CODI)代替JSF managed beans一段時間以來,我一直在瀏覽一些教程以更好地理解我可以做什麼真的用這個技術做。最明顯的開發潛力是CDI事件模型,但對於我可以使用它的靈感來說,我沒有太多靈感。JSF應用程序中CDI事件的常見使用案例
我有一個頁面計數器機制,它保持頁面訪問的持久記錄,而無需訪問關鍵路徑上的數據庫,即減緩頁面加載時間。這是通過在由AtomicReference訪問的ConcurrentHashMap中增加一個AtomicInteger來實現的,數據存儲在單例EJB中。然後,EJB定時器定期「抓取」地圖,將其替換爲新地圖,並將新匹配添加到相應的數據庫記錄。 PreDestroy偵聽器在應用程序服務器關閉時保存任何非持久更新。
我想在頁面加載我剛剛火與應用「頁面訪問」事件範圍的CDI豆觀察,並做後端處理,但是這達不到現有的設計在幾個方面:
目前更新成批,定時器方法每隔幾分鐘運行一次。
雖然現有設計會在服務器電源故障時丟失數據,但這是不可取的但可以接受的,但它處理正常關機的合理可靠性。
我需要更好地瞭解發生了什麼排隊CDI事件的情況下,說一個服務器關閉,我將通過規範摸不着頭腦。
雖然我會很感激上述想法是什麼,我在是由在您使用CDI事件在JSF應用程序的任何有趣的場景啓發真正感興趣的任何意見,任何人都關心,分享他們的經驗?
謝謝。
謝謝,這是我不知道的重點,我已經運行了一些測試,並看到它發生。 – Oversteer