En este artículo Vlad Mihalcea nos explica cómo implementar basado en Spring AOP una sencilla caché de tipo Memoization (técnica de caché a nivel de método para acelerar invocaciones consecutivas)
Como cuenta en el post no usa la abstracción de Caché de Spring porque esta funciona a nivel de Aplicación y no a nivel de Petición (es decir cachearé solo las peticiones sucesivas para un mismo cliente).
La implementación consta de:
1. Defino anotación que usaré para saber qué métodos cachear

2. Defino un InvocationContext para saber desde qué método se me llama:
Y un Scope de Request:
3. Finalmente implemento el Aspecto que va a encargarse de la lógica:
En el que se ve que si existe el elemento en cacheé se devuelve este.
4. Y finalmente lo ponemos en práctica:
Sencillo, verdad?
Aunque es fácil vislumbrar en este método un OutOfMemory al cabo del tiempo J





Deja un comentario