2014-11-04 4 views
0

XML로 데이터를 저장하는 앱이 있습니다. 사용자가 데이터를 요청하면 XML이 엔티티로 파싱되어 서블릿 같은 것을 통해 보여진다.자바 리소스 풀

내 문제는 모든 새로 고침 후 something-like-servlet이 데이터를 다시 처리하고 XML 구문 분석이 비용이 많이 든다는 것입니다. 또한 모든 데이터를 메모리에 저장하기에는 너무 많은 XML이 있습니다.

리소스 풀링과 같은 것에 대해 생각하고 있었는데, 프로그램에서 풀을 요청한 경우, 풀에 foo이라는 이름의 엔티티가 있는지 묻습니다. 있을 경우 foo이 풀에서 반환되고 그렇지 않으면 foo이 XML에서 만들어지고 풀에 저장됩니다. 이 같은

뭔가 : 나는 약 아파치 객체가을 풀링하지만 제대로 이해한다면, 내가 f.e. 저장할 수 없습니다 읽고

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

그것과 5 개의 다른 엔티티 그리고 특정 ID를 가진 엔티티가 풀에 있는지 물어보십시오.

내 문제와 관련하여 도움이되는 라이브러리가 있습니까? 많은 감사!

+1

캐싱 프레임 워크를 살펴보십시오. (예 : ehcache, oscache 등) –

답변

0

Commons Pool을 언급 한 경우 KeyedObjectPool 인터페이스를 살펴볼 수 있습니다.

"키잉 된"풀링 인터페이스.

키 풀은 각 키 값에 대한 인스턴스 풀을 유지 관리합니다.

+0

감사합니다. 원하는 내용이 같습니다. 나는 그것을 시험해 볼 것이다. – toothbrush