9 Stimmen

Spring 3.1 Cache-Abstraktion ohne Parameter

Lesen über die neue Cache-Abstraktion in Spring 3.1, wollte ich diese Funktion auf mein Projekt anwenden.

Kann ich den Aufruf einer Methode, die keine Parameter hat, in den Cache stellen?

@Cacheable("xCache")
public List<X> loadAllX() {
    ...
}

In dem verlinkten Blogbeitrag heißt es

ein Cache-Lookup mit den Methodenparametern als Schlüssel durchgeführt wird

Es sollte also nicht möglich sein, diese Methode zwischenzuspeichern, richtig?

Kurze Antwort: Ja, Methoden ohne Argumente werden genau wie alle anderen Methoden zwischengespeichert. Ich vermute, dass es genau einen Eintrag im Cache für diese Methode geben wird.

10voto

btiernay Punkte 7620

Sie können dieses Verhalten außer Kraft setzen, indem Sie " Cache SpEL verfügbare Metadaten " wie hier beschrieben:

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/cache.html#cache-spel-context

In Ihrem Beispiel könnten Sie Folgendes angeben:

@Cacheable(value = "xCache", key = "#root.methodName") 
public List<X> loadAllX() { 
    ... 
} 

Das würde die Liste von X im "xCache" mit dem Schlüssel "loadAllX" zwischenspeichern

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X