Befehls-Caching konfigurieren
Befehle können zur Wiederverwendung in einem ähnlichen Verfahren für Servlets und JSP-Dateien zwischengespeichert werden.
Informationen zu diesem Vorgang
Eine eindeutige Cache-ID könnte ausgehend vom Namen des Befehls sowie vom Wert des Symbols generiert werden.
Für das Befehls-Caching sind die folgenden Schritte erforderlich:
Vorgehensweise

Beispiel
Die folgenden Codebeispiele veranschaulichen die Verwendung des Befehlscachings für einen einfachen Börsennotierungsbefehl.
Das folgende Codebeispiel zeigt eine Bean für Börsennotierungsbefehle. Die Bean akzeptiert einen Ticker als Eingabeparameter und erstellt einen Preis als Ausgabeparameter:
public class QuoteCommand extends CacheableCommandImpl
{
private String ticker;
private double price;
// Wird aufgerufen, um zu validieren, dass Befehlseingabeparameter festgelegt wurden
public boolean isReadyToCallExecute() {
return (ticker!=null);
}
// Wird durch einen Cachetreffer aufgerufen, um Ausgabeeigenschaften für dieses Objekt zu kopieren
public void setOutputProperties(TargetableCommand fromCommand) {
QuoteCommand f = (QuoteCommand)fromCommand;
this.price = f.price;
}
// Methode der Geschäftslogik, die aufgerufen wird, wenn der Aktienkurs abgerufen werden muss
public void performExecute()throws Exception {...}
//Eingabeparameter für den Befehl
public void setTicker(String ticker) { this.ticker=ticker;}
public String getTicker() { return ticker;}
//Ausgabeparameter für den Befehl
public double getPrice() { return price;};
}
Das folgende Codebeispiel veranschaulicht die Verwendung der Cacherichtlinie für das Zwischenspeichern des Objekts des Börsennotierungsbefehls, das den Börsenticker als Cacheschlüssel und eine Lebensdauer von 60 Sekunden verwendet:
<cache>
<cache-entry>
<class>command</class>
<sharing-policy>not-shared</sharing-policy>
<name>QuoteCommand</name>
<cache-id>
<component type="method" id="getTicker">
<required>true</required>
</component>
<priority>3</priority>
<timeout>60</timeout>
</cache-id>
</cache-entry>
</cache>