...
Gestion du cache avec ehcache
L'utilisation ad hoc du cache revient à initialiser, charger et lire "manuellement" les éléments via le cacheManager.
Initialisation du cache
Voici un exemple de code permettant l'instanciation du cache :
| Bloc de code |
|---|
/**
* The cache object for the VET.
*/
private Cache cacheVet;
// on consulte dans le cacheManager si l'entrée du cache existe déjà
if (!cacheManager.cacheExists("org.esupportail.apogee.domain.dto.enseignement.VersionEtapeDTO")) {
cacheManager.addCache("org.esupportail.apogee.domain.dto.enseignement.VersionEtapeDTO");
}
cacheVet = cacheManager.getCache("org.esupportail.apogee.domain.dto.enseignement.VersionEtapeDTO");
|
La classe Cache fait partie de la librairie net.sf.ehcache.
Chargement du cache
Une fois le cache instanciation faite, on initialise le cache avec les données qu'on souhaite stocker :
| Bloc de code |
|---|
/**
* Initialisation du cache VET.
*/
public void initCacheVet() {
// on vide le contenu du cache
cacheVet.flush();
// on prépare l'élément à stocker qui peut avoir n'importe quel format
Map<String, List<VersionEtapeDTO>> mapOfVet = new HashMap<String, List<VersionEtapeDTO>>();
...
// mise en cache des éléments de la map, la clé étant la clé dans le cache, l'élément stocké étant la liste
for (Map.Entry<String, List<VersionEtapeDTO>> vetEntry : mapOfVet.entrySet()) {
cacheVet.put(new Element(vetEntry.getKey(), vetEntry.getValue()));
}
}
|
La classe Element fait partie de la librairie net.sf.ehcache.
Lecture du cache
Lorsqu'on veut récupérer un des éléments stocké dans le cache, on procède comme suit :
| Bloc de code |
|---|