Spring @Cacheable funktioniert nicht - was ist falsch mit meiner config?
Ich habe gesehen, viele Inkarnationen dieses gleiche Problem, aber ich denke, ich habe versucht alle Updates - meine Nutzung ist Recht einfach.
Hatte ich mich schon mit Ehcache, die auch nicht funktioniert hat. So, um auszuschließen, Ehcache Probleme und helfen Sie, zeigen Sie auf etwas grundlegenderes, zog ich SimpleCacheManager und ConcurrentMapCacheFactoryBean.
Hier ist meine config:
<cache:annotation-driven/>
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
<property name="caches">
<set>
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="parentAppIds"/>
</set>
</property>
</bean>
Hier ist meine Methode:
@Cacheable(value="parentAppIds", key="accountNumber")
public Long findApplicationId(String accountNsc, String accountNumber) throws EMSException {
....
}
Dies ist eine Methode, die auf einer Schnittstelle, die die Implementierung der Klasse ist der Frühling es geschafft @Service("foo")
Ich versucht, mit 'p0', wie vorgeschlagen hier aber ohne Erfolg. Ich habe keine Kompilierung Probleme und keine Fehler in meinen server-logs, also bin ich zuversichtlich, dass ich alles, was notwendig ist auf meinem classpath; und Namespaces sind alle in Ordnung, da bin ich mit STS, die - so ließ ich pom.xml und im Frühjahr Namespace-Deklarationen zu blockieren Lärm.
Ich bin mit Spring 3.1, Java 1.5 und Websphere 6.1
Das symptom ist, dass die Methode besucht wird mit den gleichen Parametern wiederholt.
Bitte helfen - ich bin hungrig sind und sich weigern, gehen zum Mittagessen, bis ich Nagel diese.
Hinweis: ich vereinfachte meine @Cacheable Erklärung meine aktuelle ist
@Cacheable(value="parentAppIds", key="#p0.concat('-').concat(#p1)")
Weder die Arbeit.
Dank.
** Edit - ich habe ausgeschlossen Websphere als problem durch die Schaffung eines Prüfstandes mit
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(...)
imitiert, was passiert ist. @Cacheable
ist einfach nicht funktioniert. Es muss etwas blendend offensichtlich, dass ich vermisst werde. (Ich hatte schon Mittag jetzt)
- Ich hatte ein problem mit Spring Caching, da rief ich die annotierte Methode aus der gleichen Klasse, zu vergessen, dass dies nicht so ist, wie proxies arbeiten. Sie sagen, dass die annotation ist ein interface, so dass wahrscheinlich nicht dein problem, ich bin einfach nur werfen es da draußen.
- überprüfen Sie in diesem tutorial, java2practice.com/2013/03/23/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein Problem ist gelöst. Leider kann ich nicht lokalisieren, wo genau mein Problem lag. Sicherlich, alles, was erforderlich ist, ist das, was ich erwähnt habe in meiner Frage.
Um dies ZU beheben, habe ich aufgeräumt, meine Spring-Konfiguration ein wenig und räumte mein browser und application-server-cache und temp-Verzeichnisse. Ich habe eine vollständige Neuinstallation und cache funktioniert nun.
Ist es möglich, dass ich die Prüfung mit einer früheren version, die nicht diese wichtige Zeile in der Anwendung-config:
Hatte ich weggelassen, dass an den start. Vielleicht ist meine Zugabe war nicht abgeholt, bis jetzt. Sonst bin ich ratlos. Vielen Dank für Ihre Zeit.
Hast du vielleicht ändern
zu
als Zugabe den
#
entfernt, dass ein Fehler für mich, während versuchen, um caching zu arbeiten.