Uso il meccanismo di astrazione della cache da RC 3.0 Spring: ho impostato il codice byte (basato su AspectJ) in modo che il meccanismo della cache possa essere applicato ai metodi richiamati dalla classe stessa. Vale la pena di dire che prima stavo usando l'approccio basato su proxy: (. Per i metodi vengono richiamati da un altro oggetto) tutto funzionava beneProblemi di memorizzazione nella cache di Spring quando si utilizza AspectJ LTW
Appena posso passare al AspectJ (ho attivato LTW via, aggiunto i vasi giusti al loro posto - tutto funziona bene, nessuna eccezione viene lanciata, nessuna memorizzazione nella cache avviene
Qualche suggerimento? Grazie.
==== successivamente modificare ========
ho istituito i registri per eseguire il debug per org.springframework.
Se si utilizza la modalità proxy, posso vedere chiaramente il messaggio Aggiunta metodo di cacheable 'getLargeAssetContent' .... dove getLargeAssetContent è il mio metodo "cacheable" ... (vedi sotto)
Se si utilizza la modalità AspectJ, Non vedo questo messaggio .... ogni richiesta va al livello DAO ... dove come, nella situazione in cui la cache funziona, le richieste si fermano al livello di servizio.
Cosa sto facendo male? Ho bisogno di un aop.xml? Non stavo usando AOP ...., quindi non ho ancora un aop.xml.
Grazie per il vostro aiuto.
*> * 2011-12-12 16: 38: 55.998 DEBUG [org.springframework.cache.annotation.AnnotationCacheOperationSource]
(http-127.0.0.1-8080-6) Aggiunta metodo cacheable ' getLargeAssetContent' con l'attributo: [CacheOperation [pubblico com.mycompany.myprj.model.AssetContent com.mycompany.myprj.dao.jcr.AssetDAOImpl.getLargeAssetContent (java.lang.String) getta com.mycompany.myprj.dao .MyPrjPersistenceException] cache = [risorse] | condizione = '' | key = '# nodeId'] 2011-12-12 16: 38: 56,013 INFO [com.mycompany.myprj.dao.jcr.AssetDAOImpl] (http-127.0.0-8080-6) Ottenere il contenuto (getLargeAssetContent) della risorsa dal 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) Tornando il contenuto di risorsa dal nodo con id = 575d8dc0-01be-41e4-85ce-a654fab97fe8 **
*
// il conte nt viene memorizzato nella cache ora 2011-12-12 16: 38: 57,654 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] (http-127.0.0-8080-6) Restituzione dell'istanza memorizzata nella cache del bean singleton ' assetController '2011-12-12 16: 38: 57,654 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-127.0.0-8080-6) Valore Ultima modifica per [/ myprj/asset/get/575d8dc0-01be-41e4-85ce-a654fab97fe8] è: -1 2011-12-12 16: 38: 57,654 INFO [com.mycompany.myprj.services.AssetService] (http-127.0.0.1-8080-6) Ottenere bene con id: 57
*
Quando hai detto abilitato LTW, hai aggiunto ' ' nel tuo contesto, giusto? –
Kilokahn
Sono di fronte e = lo stesso identico problema. Sei riuscito a trovare una soluzione? –
Quindi, non riesco ancora a farlo con LTW. Tornare indietro alla modalità proxy per ora. –