Intégration de EhCache et Spring

EhCache est un framework libre largement utilisé pour résoudre les problèmes de cache dans les projets Java. Vous pouvez le télécharger gratuitement sur le site: http://ehcache.org/downloads/catalog, la dernière version est 2.6.0.

Spring est un framework pour construire et définir l'infrastructure d'une application.
Sa page de téléchargement est http://www.springsource.org/download et la dernière version est 3.1.3.RELEASE.

Dans cet article, on va se concentrer sur l'intégration de EhCache et Spring.

EhCache est un framework libre largement utilisé pour résoudre les problèmes de cache dans les projets Java. Vous pouvez le télécharger gratuitement sur le site: http://ehcache.org/downloads/catalog, la dernière version est 2.6.0.

Spring est un framework pour construire et définir l'infrastructure d'une application.
Sa page de téléchargement est http://www.springsource.org/download et la dernière version est 3.1.3.RELEASE.

Dans cet article, on va se concentrer sur l'intégration de EhCache et Spring.

EhCache, est principalement composé de 3 éléments: CacheManager, Caches et Elements.

CacheManager: permet la gestion de Caches et leur cycle de vie.

Caches: est la classe centrale du framework. Elle gère les "elements" et est gérée par le "CacheManager". On présente des configurations sur cache dans le fichier ehcache.xml dessous.

Elements: Un "element" est constitué par une clé et une valeur. La valeur peut-être n'importe quel objet qui implémente l'interface Serializable.

Example d'intégration d'EhCache avec Spring

Étape 1: Ajout de la dépendance de EhCache dans le pom du projet.

<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.6.0</version>
</dependency>

Étape 2 : Configuration de EhCache dans un fichier XML. Dans cet exemple, on nomme ce fichier ehcache.xml.

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="ehcache.xsd"
         updateCheck="false" monitoring="autodetect"
         dynamicConfig="true">

    <!-- Tous les éléments du cache qui sont configurés d'être cachés 
    dans le disque seront sauvegardés dans ce dossier. -->
    <diskStore path="/var/ehcache/data"/>

   <!-- Cache par défaut et on ne peux pas le supprimer et il faut toujours le garder. -->
   <defaultCache
        maxElementsInMemory="10000"
        eternal="true"
        timeToIdleSeconds="0"
        timeToLiveSeconds="0"
        overflowToDisk="true"
        diskPersistent="false"
        diskExpiryThreadIntervalSeconds="120"
    />
     
     <!-- Le cache créé pour ce blog et son nom est CacheExemple. -->
     <cache name="CacheExemple"
        maxElementsInMemory="500"
        eternal="false"
        overflowToDisk="false"
        timeToIdleSeconds="0"
        timeToLiveSeconds="0"
        diskPersistent="true"
        maxElementsOnDisk="500" />

</ehcache>

Étape 3 : Configuration du fichier de contexte de Spring.

<bean id="exemple.ehcache.cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:/ehCache.xml" />
</bean>

EhCacheManagerFactoryBean : Le factory bean qui permet de configurer le CacheManager à partir du fichier indiqué.

Étape 4 : Import de EhCache dans la couche métier.

<bean id="exemple.ehcache.cacheService" name="ehCacheService"
		class="exepmle.ehcache.service.impl.EhcacheLogServiceImpl">
<!-- le factory bean déclaré au dessus -->
<property name="cacheManager" ref="exemple.ehcache.cacheManagerFactory" />
<!-- le nom du cache dans le fichier ehcache.xml -->
<property name="cacheName" value="ExempleCache" />
<property name="logger" ref="logger"/>
</bean>

Dans la classe de la couche métier, on peut directement l'utiliser :

    public void putLogLine(String log)
	{
	   final String key = String.valueOf(new DataTime().getMillis());
	   final Element element = new Element(key, log);
	   getCacheManager().getCache(getCacheName()).put(element);
	}

Voilà, on a fini d'intégrer l'ehcache et spring, c'est vraiment simple, n'est pas ?

Référence :
http://ehcache.org/documentation
http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.html

Un commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.