配置 Spring 高速缓存提供者

[Version 2.1 and later] Spring Framework V3.1 引入了新的高速缓存抽象。使用此新的抽象,您可以显式地向现有 Spring 应用程序中添加高速缓存。您可以将 WebSphere® DataPower® XC10 Appliance 用作高速缓存提供者以进行高速缓存抽象。

开始之前

关于此任务

通过在 Spring Framework 中使用高速缓存抽象,可以减少 Java 方法运行的次数。配置之后,特定方法的结果将放入高速缓存。当使用相同参数再次运行该方法时,抽象将在高速缓存中进行检查,以查明方法结果是否已在高速缓存中。如果结果在高速缓存中,那么无需再次运行该方法。 实现抽象可减少代价高昂的方法的运行次数,同时缩短您的应用的平均响应时间。

过程

配置 Spring 控制反转 (IoC) 容器,以将 WebSphere DataPower XC10 Appliance 用作高速缓存提供者。 WebSphere DataPower XC10 Appliance 高速缓存实现位于 com.ibm.websphere.objectgrid.spring 软件包下。 在 Spring IoC 容器配置中定义以下 bean。
<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
指定目录服务器主机名和端口。
将用于改变客户机端设置的 ObjectGrid XML 文件的绝对或相对路径指定为 Spring 资源。有关在 Spring 中指定资源的信息,请参阅 Spring Framework Reference Documentation: Resources

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

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

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

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

CLIENT_SECURITY_CONFIG(可选)
指定作为 Spring 资源的 client.properties 文件的绝对或相对路径。有关在 Spring 中指定资源的信息,请参阅 Spring Framework Reference Documentation: Resources有关为 WebSphere DataPower XC10 Appliance 创建 client.properties 的更多信息,请参阅将数据网格应用程序配置为使用客户机认证

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

OBJECT_GRID_NAME
指定 ObjectGrid 名称。如果容器服务器使用提供的 XML 配置文件启动,那么不需要此参数。此值是您在用户界面中所创建的简单数据网格的名称。
CACHE_NAME
指定为 Spring 高速缓存应用程序指定的高速缓存的名称。
MAP_NAME
指定高速缓存的后备映射的名称。此值是您在用户界面中所创建的简单数据网格的名称。如果要使用缺省值之外的其他映射名称,那么可定义动态映射。有关创建动态映射的信息,请参阅动态映射配置选项

示例

以下片段创建名为 default 的高速缓存,由 myXC10.myhost.com:2809 处的设备主管。此示例使用根据数据网格命名的缺省映射实例。
<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>