如何在XML配置中使用GridGain缓存模板配置cacheA与cacheB?
GridGain XML缓存模板正确配置方式
核心配置逻辑
GridGain的缓存模板通过<cache-template>定义通用配置,具体缓存通过template属性引用模板,同时可按需覆盖或补充特有属性,避免重复配置。
完整示例代码
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ignite="http://www.gridgain.com/schema/ignite" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.gridgain.com/schema/ignite http://www.gridgain.com/schema/ignite/ignite.xsd"> <!-- 定义通用缓存模板:抽离重复配置项 --> <ignite:cache-template id="common-cache-template"> <ignite:cache-mode>PARTITIONED</ignite:cache-mode> <ignite:backups>1</ignite:backups> <ignite:expiry-policy> <bean class="org.apache.ignite.cache.CacheExpiryPolicy"> <property name="createTimeout" value="3600000"/> <!-- 创建后1小时过期 --> </bean> </ignite:expiry-policy> <ignite:storage-settings> <ignite:off-heap-max-memory value="10GB"/> </ignite:storage-settings> </ignite:cache-template> <!-- 缓存A:引用模板,仅配置专属属性 --> <ignite:cache name="cacheA" template="common-cache-template"> <ignite:key-value-config> <ignite:key-type>java.lang.String</ignite:key-type> <ignite:value-type>com.example.User</ignite:value-type> </ignite:key-value-config> </ignite:cache> <!-- 缓存B:引用模板,覆盖模板属性+配置专属属性 --> <ignite:cache name="cacheB" template="common-cache-template"> <ignite:backups>2</ignite:backups> <!-- 覆盖模板的备份数配置 --> <ignite:key-value-config> <ignite:key-type>java.lang.Long</ignite:key-type> <ignite:value-type>com.example.Order</ignite:value-type> </ignite:key-value-config> </ignite:cache> </beans>
关键验证点
- 若你的配置中,
cacheA和cacheB通过template属性绑定了对应的缓存模板ID,且仅补充/覆盖特有属性,这种写法是正确的。 - 模板未定义的属性可在具体缓存中追加;模板已定义的属性,具体缓存中的配置会自动覆盖模板值(如示例中
cacheB的备份数)。
内容的提问来源于stack exchange,提问作者LostShepherd
相关产品推荐
相关产品推荐

