Giovanni Bricconi

My site on WordPress.com

EHCache

leave a comment »

Di quando in quando capita di voler utilizzare una cache per conservare il risultato delle elaborazioni, per conservarle sino a che qualche evento non scatta: per esempio nuovi dati disponibili, una modifica su un file o semplicemente se è trascorso molto tempo da quando i dati sono stati elaborati.

Più di dieci anni fa mi ero scritto una cache con un numero limitato di entry, che scartava gli elementi più vecchi. Mi ha servito degnamente per anni ed anni, questa volta invece di continuare a riciclarla ho deciso di fare un giro su google per vedere quali mirabolanti framework java sono usciti in questi anni.

Una delle prime pagine che si trovano è una directory di cache java purtroppo molte delle quali sono morte e defunte o no hanno più nulla da aggiungere da diversi anche, come la vecchia oscache di cui avevo sentito parlare tanto tempo fa.

Una carina che ho trovato si chiama EHCache, parte delle funzionalità sono gratuite (quelle che servono normalmente) mentre altre richiedono una licenza. Visto che a me serve poco più che limitare lo spazio in memoria per i dati ho deciso di provarla.

basta scaricare i jar e metterli nel progetto, copiare il file di configurazione ehcache.xml nella radice dei sorgenti e fare qualche minima modifica – spegnere il supporto per la cache distribuita terracotta che è molto oltre le mie necessità. Per fare questo basta commentare tutte i tag <terracotta/> che si trovano nelle cache di esempio.

Poi nelle classi java bastano un paio di linee di codice

CacheManager cacheManager;
Ehcache cache;

cacheManager = CacheManager.newInstance();
cache = cacheManager.getEhcache(“sampleCache2”);

per inizializzare (solo la prima volta) la chache, e poi per inserivi i dati

cache.put(new Element(chiave,oggettoDaSalvare));

invece per leggere

Element cacheElement = cache.get(chiave);

if (cacheElement!=null) {
            logger.finest(“cache hit”);
            return (MyValueObject) cacheElement.getObjectValue();
        }

 

Niente di più complicato di cosi!

http://ehcache.org/

Written by Giovanni

September 17, 2012 at 4:18 pm

Posted in Varie

Leave a comment