eCandidat (esup-opi)

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

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