Der Cache-Interceptor-Aufruf wird ignoriert

8

Ich arbeite an Cache-Implementierung (Exstremescale) für Maven-Multi-Modul-Projekt, wo ich unten Maven-Abhängigkeit hinzugefügt haben

%Vor%

Caching-Annotation wurde auf

hinzugefügt %Vor%

cache-manager.xml

%Vor%

Caching funktioniert nur für ein Maven-Modul des Projekts, ich kann den Cache-Interceptor-Aufruf sehen und für den Rest des Maven-Moduls ignoriert es die @ cacheable-Annotation (es geht nicht zum Interceptor).

Wir haben PostConstructor oder Selbstaufruf

Wir benutzen Atomikos als Transaktionsmanager und CXF-Interceptors, die ausgeführt werden, bevor wir zu Caching-Methoden kommen.

Bitte helfen Sie mir dabei

    
Sunil Rk 21.06.2016, 12:38
quelle

2 Antworten

0

Ihr Kommentar zu JdkDynamixAopProxy und der Blick auf den Code lassen mich denken, dass die Methode, die Sie mit @Cacheable kommentiert haben, in einer konkreten Klasse ist. Und für die Anmerkung zu einer konkreten Klasse, um richtiges Verhalten zu zeigen; Sie müssen das cglib-Proxying in Ihrer Anwendung aktivieren.

Dies kann durch Hinzufügen eines Proxy-Zielklassenparameters zu Ihrem Tag mit Cache-Annotation erfolgen.

<cache:annotation-driven proxy-target-class="true"/>

Wenn Sie keine klassenbasierte Proxyfunktion für Ihre gesamte Anwendung aktivieren möchten; Sie können das Verhalten für eine bestimmte Klasse angeben, indem Sie sie mit dieser Anmerkung annotieren:

@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS)

    
ritesh.garg 01.07.2016 03:09
quelle
0

Das Aufrufen von Methoden in derselben Klasse umgeht den dynamischen Proxy, und alle bereichsübergreifenden Probleme wie Caching, Transaktionen usw., die Teil der dynamischen Proxies sind, werden ebenfalls umgangen. Also könnte dein Problem Spring cache @ Cacheable-Methode ignoriert, wenn sie innerhalb derselben Klasse aufgerufen wird ?

Wenn das der Fall ist, müssen Sie die AspectJ-Kompilierzeit oder die Ladezeit beim Weben verwenden.

    
denov 01.07.2016 03:10
quelle

Tags und Links