Ejemplo: uso de memoria caché para un objeto command (mandato)
Los mandatos que se pueden almacenar en memoria caché se almacenan en ésta para poder volver a utilizarlos con un mecanismo para servlets y archivos JSP (JavaServer Server Pages).
Este ejemplo de colocación en memoria caché de mandatos es un sencillo mandato para las acciones del mercado bursátil.
El siguiente es un bean de mandato de acciones en bolsa. Acepta un ticker de bolsa como parámetro de entrada y genera un precio como parámetro de salida.
public class QuoteCommand extends CacheableCommandImpl
{
private String ticker;
private double price;
// called to validate that command input parameters have been set
public boolean isReadyToCallExecute() {
return (ticker!=null);
}
// called by a cache-hit to copy output properties to this object
public void setOutputProperties(TargetableCommand fromCommand) {
QuoteCommand f = (QuoteCommand)fromCommand;
this.price = f.price;
}
//bbusiness logic method called when the stock price must be retrieved
public void performExecute()throws Exception {...}
//input parameters for the command
public void setTicker(String ticker) { this.ticker=ticker;}
public String getTicker() { return ticker;}
//output parameters for the command
public double getPrice() { return price;};
}
Para almacenar en la memoria caché el objeto de mandato anterior utilizando el ticker de bolsa y un tiempo de vida de 60 segundos, utilice la política de memoria caché siguiente:
<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>