Beispiel: Ein Command-Objekt zwischenspeichern
Befehle können zur Wiederverwendung in einem ähnlichen Verfahren für Servlets und JSP-Dateien zwischengespeichert werden.
In diesem Beispiel für das Befehls-Caching wird ein einfacher Befehl für eine Börsennotierung ausgeführt.
Es folgt eine Befehls-Bean für eine Börsennotierung. 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;};
}
Wenn Sie das vorherige Befehlsobjekt mit dem Börsenticker als Cacheschlüssel verwenden und eine Lebensdauer von 60 Sekunden zugrunde legen möchten, verwenden Sie die folgende Cacherichtlinie:
<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>