Mise en cache : les point-cut
Sat, 29/10/2011 - 19:26 — Arkitech
Il est souvent utile de mettre en cache des valeurs inchangeantes au cours de l'exécution d'une application. Tel est l'exemple des messages d'erreurs. Voici une méthode permettant de les gardes en cache :
/**
* Retourne toutes les erreurs de la table ERREUR.
* La liste retournée est mise le cache à l'aide de cacheAOP.
*
* @return List
*/
@SuppressWarnings("unchecked")
public HashMap<String, Erreur> getErreurs() {
HashMap<String, Erreur> vHashMapErreurs = null;
..... //Remplir la hashmap
}
Il ne reste plus qu'à rajouter cette méthode dans le contexte spring relatif au cacheAOP :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- Definition de l'aspect -->
<bean id="fwk-monAppliCoherenceAdvice"
class="mon.package.cache.coherence.CoherenceCacheAdvice"/>
<!-- Configuration aspect -->
<aop:config>
<aop:pointcut id="ExceptionGetErreursPointcut"
expression="execution(public * mon.package.getErreurs*(..))" />
<!-- Gere le Context Fonctionnel -->
<aop:aspect id="manageCacheCoherence" ref="fwk-monAppliCoherenceAdvice"
order="1">
<aop:around pointcut-ref="ExceptionDAOGetErreursPointcut"
method="cacheMonAppli" />
</aop:aspect>
</aop:config>
</beans>

Comments
Post new comment