Configuración de un proveedor de memoria caché Spring

[Version 2.1 and later] Spring Framework Versión 3.1 introdujo una nueva abstracción de memoria caché. Con esta nueva abstracción, puede añadir de forma transparente almacenamiento en memoria caché a una aplicación Spring existentes. Puede utilizar WebSphere DataPower XC10 Appliance como proveedor de memoria caché para la abstracción de memoria caché.

Antes de empezar

Acerca de esta tarea

Mediante la utilización de la abstracción de memoria caché en Spring Framework, puede reducir el número de veces que se ejecuta el método Java. Cuando se configura, los resultados de un método en particular se colocan en memoria caché. Cuando el método se vuelve a ejecutar con los mismos argumentos, la abstracción comprueba la memoria caché para ver si los resultados del método ya están en memoria caché. Si los resultados están en la memoria caché, no es necesario que se vuelva a ejecutar el método. La implementación de la abstracción puede reducir el número de veces que se ejecutan métodos costosos, reduciendo también el tiempo de respuesta promedio de la aplicación.

Procedimiento

Configure el contenedor Spring Inversion of Control (IoC) para utilizar WebSphere DataPower XC10 Appliance como proveedor de memoria caché. La implementación de WebSphere DataPower XC10 Appliance reside bajo el paquete com.ibm.websphere.objectgrid.spring. Defina los siguientes beans en la configuración del contenedor de Spring IoC.
<bean id="wxsCSDomain" class="com.ibm.websphere.objectgrid.spring.ObjectGridCatalogServiceDomainBean"
  	p:catalog-service-endpoints="CATALOG_SERVICE_ENDPOINTS" 
  />

<bean id="wxsGridClient" class="com.ibm.websphere.objectgrid.spring.ObjectGridClientBean" 
  p:object-grid-name="OBJECT_GRID_NAME"
  	p:catalog-service-domain-ref="wxsCSDomain" />

<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
  	<property name="caches">
    		<set>   
      			<bean class="com.ibm.websphere.objectgrid.spring.ObjectGridCache"
         				p:name="CACHE_NAME"
         p:map-name="MAP_NAME "
				p:object-grid-client-ref="wxsGridClient" />
     		</set>
   </property>
</bean>
CATALOG_SERVICE_ENDPOINTS
Especifica el nombre de host del servidor de catálogo y el puerto.
Especifique una vía de acceso absoluta o relativa a un archivo XML de ObjectGrid en el que se deben alterar los valores del lado del cliente como recurso Spring. Para obtener información sobre la especificación de recursos en Spring, consulte Spring Framework Reference Documentation: Resources.

Ejemplo:p:client-override-xml="file:/path/to/objectgrid.xml"

Example:p:client-override-xml="classpath:com/example/app/override-objectgrid.xml"

Example:p:client-override-xml="http://myserver/override-objectgrid.xml"

Example:p:client-override-xml="ftp://myserver/override-objectgrid.xml"

CLIENT_SECURITY_CONFIG (opcional)
Especifica una vía de acceso absoluta o relativa para un archivo client.properties como recurso de Spring. Para obtener información sobre la especificación de recursos en Spring, consulte Spring Framework Reference Documentation: Resources.Para obtener más información acerca de la creación de un client.properties para WebSphere DataPower XC10 Appliance, consulte Configuración de una aplicación de cuadrícula de datos para que utilice la autenticación de cliente.

Ejemplo:p:client-security-config="file:/path/to/client.properties"

OBJECT_GRID_NAME
Especifica el nombre de ObjectGrid. Este parámetro no es necesario si los servidores de contenedor se inician con los archivos de configuración XML proporcionados. Este valor es el nombre de la cuadrícula de datos simple que ha creado en la interfaz de usuario.
CACHE_NAME
Especifica el nombre de la memoria caché que se ha especificado en la aplicación de almacenamiento en memoria caché de Spring.
MAP_NAME
Especifica el nombre de la correlación de respaldo para una memoria caché. Este valor es el nombre de la cuadrícula de datos simple que ha creado en la interfaz de usuario. Si desea utilizar un nombre de correlación distinto del valor predeterminado, puede definir una correlación dinámica. Para obtener información sobre la creación de correlaciones dinámicas, consulte Opciones de configuración de correlaciones dinámicas.

Ejemplo

El siguiente fragmento de código crea una memoria caché denominada default alojada en un dispositivo en myXC10.myhost.com:2809. Este ejemplo utiliza la instancia de correlación predeterminada que recibe el nombre de la cuadrícula de datos.
<bean id="wxsCSDomain" class="com.ibm.websphere.objectgrid.spring.ObjectGridCatalogServiceDomainBean"
	p:catalog-service-endpoints ="myXC10.myhost.com:2809" />  
<bean id="wxsGridClient" class="com.ibm.websphere.objectgrid.spring.ObjectGridClientBean" 
	p:object-grid-name=”my_simple_data_grid” 
  	p:catalog-service-domain-ref="wxsCSDomain" />
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
	<property name="caches">
		<set>   
			<bean class="com.ibm.websphere.objectgrid.spring.ObjectGridCache"
				p:name="default"     
				p:map-name=”my_simple_data_grid”    
				p:object-grid-client-ref="wxsGridClient" />
		</set>
	</property>
</bean>