2014-11-04 99 views
0

我有一個存儲XML數據的應用程序。當用戶請求數據時,XML被解析成實體,然後通過類似於servlet的東西向他顯示。Java資源池

我的問題是,在每次刷新之後,類似servlet的服務器必須再次處理數據並解析XML代價很高。還有太多的XML將所有數據存儲在內存中。

我正在考慮像資源池,其中程序請求池,如果有實體名稱foo在池中。如果有,foo從池中返回,如果沒有,foo從XML創建並保存到池中。

事情是這樣的:

Entity entity = null; 
entity.setId(id); 
for(Entity entityFromPool : pool.getAllEntities()){ 
     if(entityFromPool.getId().equals(entity.getId())){ 
      entity = entityFromPool(); 
      isInPool = True; 
} 
if(!isInPool){ 
    entity = getEntityFromXML(); 
} 

我看了一下阿帕奇對象池但如果我理解正確的話,我不能存儲F.E. 5個不同的實體,然後詢問具有特定ID的實體是否存在於池中。

有什麼圖書館可以幫助我解決問題嗎? 非常感謝!

+1

試着也研究緩存框架。 (例如ehcache,oscache等) – 2014-11-04 12:46:11

回答

0

如果您指的是Commons Pool,那麼您可以看看KeyedObjectPool界面。

「鍵控」池接口。

鍵控池爲每個鍵值維護一個實例池。

+0

謝謝,這看起來像我想要的。我會試試看。 – toothbrush 2014-11-04 12:41:35