Używam mechanizmu abstrakcji bufora z Spring 3.0 RC1: Ustawiłem kod bajtowy (oparty na AspectJ), tak aby mechanizm cache mógł być zastosowany do metod wywoływanych z samej klasy. Warto powiedzieć, że najpierw używałem podejścia opartego na proxy: wszystko działało poprawnie (metody są wywoływane z innego obiektu).Problemy z buforowaniem sprężynowym podczas używania AspectJ LTW
Jak tylko przełączyłem się na AspectJ (aktywowałem LTW przez, dodałem odpowiednie słoiki na swoje miejsce - wszystko działa poprawnie, nie są zgłaszane żadne wyjątki), nie ma buforowania
Jakieś sugestie? Dziękuję Ci.
==== później edytować ========
skonfigurować dzienniki debugowania dla org.springframework.
Jeśli w trybie proxy, można wyraźnie zobaczyć komunikat Dodawanie metody Cacheable „getLargeAssetContent” .... gdzie getLargeAssetContent jest mój „buforowalny” metoda ... (patrz poniżej)
W przypadku korzystania z trybu AspectJ, Nie widzę tego komunikatu ... każde żądanie trafia do warstwy DAO ... gdzie jako, w sytuacji, gdy działa pamięć podręczna, żądania zatrzymują się na warstwie usługi.
Co robię źle? Czy potrzebuję pliku aop.xml? Nie korzystałem z AOP ...., więc nie mam jeszcze pliku aop.xml.
Dziękuję za pomoc.
*> * 2011-12-12 16: 38: 55998 DEBUGOWANY [org.springframework.cache.annotation.AnnotationCacheOperationSource]
(http 127.0.0.1-8080-6) Dodawanie sposób w pamięci podręcznej " getLargeAssetContent” z atrybutu: [CacheOperation [public com.mycompany.myprj.model.AssetContent com.mycompany.myprj.dao.jcr.AssetDAOImpl.getLargeAssetContent (java.lang.String) rzuca com.mycompany.myprj.dao .MyPrjPersistenceException] Pamięć podręczna = [zasoby] | condition = '' | key = '# nodeId'] 2011-12-12 16: 38: 56,013 INFO [com.mycompany.myprj.dao.jcr.AssetDAOImpl] (http-127.0.0.1-8080-6) Pobieranie zawartości (getLargeAssetContent) o wartości aktywów od węzła o identyfikatorze = 575d8dc0-01be-41e4-85ce-a654fab97fe8 2011-12-12 16: 38: 56,092 INFO [com.mowompany.myprj.dao.jcr.AssetDAOImpl] (http-127.0.0.1- 8080-6) Wracając zawartość składnika od węzła z id = 575d8dc0-01be-41e4-85ce-a654fab97fe8 **
*
// Conte nt jest buforowany do tej pory 2011-12-12 16: 38: 57,654 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] (http-127.0.0.1-8080-6) Zwracanie buforowanej instancji pojedynczej fasoli ' assetController '2011-12-12 16: 38: 57,654 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-127.0.0.1-8080-6) Ostatnio zmodyfikowana wartość dla [/ myprj/asset/get/575d8dc0-01be-41e4-85ce-a654fab97fe8] jest: -1 2011-12-12 16: 38: 57,654 INFO [com.mowompany.myprj.services.AssetService] (http-127.0.0.1-8080-6) Pierwsze aktywów o identyfikatorze: 57
*
Kiedy powiedziałeś, że włączony LTW, dodałeś ' ' w twoim kontekście, prawda? –
Kilokahn
Mam do czynienia z e = dokładnie ten sam problem. Czy byłeś w stanie znaleźć rozwiązanie? –
Tak samo ja, nadal nie mogę tego zrobić z LTW. Wróć na tryb proxy teraz. –