Estoy utilizando el mecanismo de abstracción de caché de Spring 3.0 RC1: he configurado bytecode (basado en AspectJ) weawing para que el mecanismo de caché se pueda aplicar a métodos llamados desde la propia clase. Vale la pena decir que primero estaba usando un enfoque basado en proxy: todo funcionaba bien (para los métodos se invocan desde otro objeto)Problemas de almacenamiento en caché de primavera cuando se utiliza AspectJ LTW
Tan pronto como cambio a AspectJ (activé LTW vía, agregué los contenedores correctos en su lugar - todo está funcionando bien, no se lanzan excepciones), no hay almacenamiento en caché
¿Alguna sugerencia? Gracias.
==== tarde editar ========
puedo configurar los registros de depuración para org.springframework.
Si se utiliza el modo de proxy, puedo ver claramente el mensaje Adición método cacheables 'getLargeAssetContent' .... donde getLargeAssetContent es mi método "cacheable" ... (ver abajo)
Si se utiliza el modo aspectj, No veo este mensaje ... todas las solicitudes van a la capa DAO ... donde, en la situación en que funciona la memoria caché, las solicitudes se detienen en la capa de servicio.
¿Qué estoy haciendo mal? ¿Necesito un aop.xml? No estaba usando AOP ...., así que aún no tengo un aop.xml.
Gracias por su ayuda.
*> * 2011-12-12 16: 38: 55 998 DEBUG [org.springframework.cache.annotation.AnnotationCacheOperationSource]
(http-127.0.0.1-8080-6) Adición método cacheable ' getLargeAssetContent' con el atributo: [CacheOperation [pública com.mycompany.myprj.model.AssetContent com.mycompany.myprj.dao.jcr.AssetDAOImpl.getLargeAssetContent (java.lang.String) lanza com.mycompany.myprj.dao .MyPrjPersistenceException] caches = [activos] | condición = '' | key = '# nodeId'] 2011-12-12 16: 38: 56,013 INFO [com.mycompany.myprj.dao.jcr.AssetDAOImpl] (http-127.0.0.1-8080-6) Obtención del contenido (getLargeAssetContent) de activo del nodo con id = 575d8dc0-01be-41e4-85ce-a654fab97fe8 2011-12-12 16: 38: 56,092 INFO [com.mycompany.myprj.dao.jcr.AssetDAOImpl] (http-127.0.0.1- 8080-6) Volviendo el contenido de activo de nodo con id = 575d8dc0-01be-41e4-85ce-a654fab97fe8 **
*
// el conte nt está guardado en caché por ahora 2011-12-12 16: 38: 57,654 DEPURO [org.springframework.beans.factory.support.DefaultListableBeanFactory] (http-127.0.0.1-8080-6) Devolución de la instancia en caché de singleton bean ' assetController '2011-12-12 16: 38: 57,654 DEPURO [org.springframework.web.servlet.DispatcherServlet] (http-127.0.0.1-8080-6) Valor de última modificación para [/ myprj/asset/get/575d8dc0-01be-41e4-85ce-a654fab97fe8] es: -1 2011-12-12 16: 38: 57,654 INFO [com.mycompany.myprj.services.AssetService] (http-127.0.0.1-8080-6) Conseguir activo con id: 57
*
Cuando dice que ha habilitado LTW, ha agregado ' ' en su contexto, ¿no? –
Kilokahn
Estoy frente a e = exactamente el mismo problema. ¿Pudiste encontrar una solución? –
Yo también, todavía no puedo hacerlo con LTW. Vuelve al modo proxy por ahora. –