Java资源池

时间:2014-11-04 12:20:48

标签: java pooling object-pooling

我有一个以XML格式存储数据的应用程序。当用户请求数据时,XML被解析为实体,然后通过类似servlet的东西向他显示。

我的问题是,在每次刷新之后,像servlet这样的东西必须再次处理数据并且解析XML是昂贵的。还有太多的XML要将所有数据存储在内存中。

我正在考虑像资源池这样的东西,程序要求池,如果池中有名称 foo 的实体。如果有,则从池返回 foo ,如果没有,则从XML创建 foo 并保存到池中。

这样的事情:

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();
}

我已经阅读了 apache对象池,但如果我理解正确,我就无法存储f.e. 5个不同的实体,然后询问池中是否存在具有特定id的实体。

是否有任何图书馆可以解决我的问题? 非常感谢!

1 个答案:

答案 0 :(得分:0)

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

  

“键控”池接口。

     

密钥池为每个密钥值维护一个实例池。